Soru & Cevap

Json'dan Webview'e url çekmek

15.04.2016 - 02:43

ARKADAŞLAR AŞAĞIDA JAVA DOSYAMI VERDİM. WEBVİEW İÇİN KULLANIYORUM. ADRES KISMINI JSON DOSYAMDAN ÇEKMEK İSTİYORUM

JSON ADRESİM

http://yazbiryere.com/Ozkan356.php BU ADRESTEKİ İD:54 TEKİ SOYAD KISMINDAKİ ADRESİ KULLANMAK İSTİYORUM BUNU: http:\/\/ipcamlive.com\/player\/player.php?alias=56fe6f1bbb284&autoplay=0&mute=0  

ADIM ADIM NE YAPMAM GEREKTİĞİNİ YAZARMISINIZ. JAVA DOSYAMIN İÇİNE KODLARI YAZARSANIZ DAHA MEMUN OLURUM. GÜNLERDİR HALLEDEMEDİM.

 

 

package com.yazbiryere.clk;

import android.graphics.Bitmap;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class UcuncuEkran extends AppCompatActivity {


    private WebView mWebView;


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ucuncu_ekran);

        mWebView = (WebView) findViewById(R.id.webView);

               assert mWebView != null;
        WebSettings webSettings = mWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        mWebView.loadUrl("BURAYA JSON DOSYAMDAKİ ADRESİ ÇEKMEK İSTİYORUM");
        mWebView.setWebViewClient(new HelloWebViewClient());


    }

    private class HelloWebViewClient extends WebViewClient{


        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            // TODO Auto-generated method stub
            super.onPageStarted(view, url, favicon);
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView webView, String url)
        {
            webView.loadUrl(url);
            return true;
        }


    }


    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)
    { //if back key is pressed
        if((keyCode == KeyEvent.KEYCODE_BACK)&& mWebView.canGoBack())
        {
            mWebView.goBack();
            return true;

        }

        return super.onKeyDown(keyCode, event);

    }



    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }


}

 

23 Görüntülenme

2 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-41044-1420755027.jpg
aybukekaraaslan
17.04.2016 - 07:55

 

package com.example.britishtower;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.util.Log;

public class JSonParseSinifi {

    static InputStream gelenVeriler = null;
    static JSONArray jDizi = null;
    static JSONObject jObje = null;
    static String okunanDeger = "";


    public JSONArray JSONDiziAl(String url) {
        try {
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(url);
            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();
            gelenVeriler = httpEntity.getContent();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            BufferedReader oku = new BufferedReader(new InputStreamReader(
                    gelenVeriler, "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();
            String satir = null;
            while ((satir = oku.readLine()) != null) {
                sb.append(satir + "\n");
            }
            gelenVeriler.close();
            okunanDeger = sb.toString();
        } catch (Exception e) {
            Log.e("jparse", "Buffer Hatası :  " + e.toString());
        }
        try {
            jDizi = new JSONArray(okunanDeger);
        } catch (JSONException e) {
            Log.e("jparse", "Dizi Parse işlemi hatası " + e.toString());
        }
        return jDizi;
    }

    public JSONObject JSonObjeAl(String url) {
        try {
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpGet httpPost = new HttpGet(url);
            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();
            gelenVeriler = httpEntity.getContent();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            BufferedReader oku = new BufferedReader(new InputStreamReader(
                    gelenVeriler, "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();
            String satir = null;
            while ((satir = oku.readLine()) != null) {
                sb.append(satir + "\n");
            }
            gelenVeriler.close();
            okunanDeger = sb.toString();
        } catch (Exception e) {
            Log.e("jparse", "Buffer Hatası :  " + e.toString());
        }
        try {
            jObje = new JSONObject(okunanDeger);
        } catch (JSONException e) {
            Log.e("jparse", "Obje Parse işlemi hatası " + e.toString());
        }
        return jObje;
    }

}

Tam olarak senin koduna entegre edemem ama benim hazırladığım bir hazır sınıf var, yukarıdaki sınıf sayesinde url ile veriyi çekebilirsin.

-- Bu sınıfı kullanarak veriyi çekmek için da asıl main  fonksiyonunda şunları tanımlamane gerekiyor.

 

package com.example.britishtower;

import org.json.JSONObject;

import android.support.v7.app.ActionBarActivity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class Uye_girisi extends ActionBarActivity {

	JSonParseSinifi benimnesnem=new JSonParseSinifi();
	SharedPreferences oturum;
	EditText txttc, txtsifre;
	Button btn;
	String tc, sifre;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_uye_girisi);
		
		//widgetlar tanımlanıyor.
		txttc=(EditText) findViewById(R.id.txttc);
		txtsifre=(EditText) findViewById(R.id.txtsifre);
		btn=(Button) findViewById(R.id.btngiris);
		txttc.requestFocus();

		//buton click eventı
		btn.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				tc=txttc.getText().toString();
				sifre=txtsifre.getText().toString();
				new kontrol().execute((Void) null);
			}
		});
	}

	String durum;
	int basari=0;
	//verileri veritabanından çekip kontrol etme sınıfı
	public class kontrol extends AsyncTask<Void, Void, Void>{

		@Override
		protected Void doInBackground(Void... params) {
			JSONObject kontrol=benimnesnem.JSonObjeAl("http://192.168.5.28/android_connect/index.php/ogr_giris_kontrol?tc="+tc+"&sifre='"+sifre+"'");
			try {
//Benim json verimden "success bundle'ı geliyor, seninkinden hangisi geliyorsa onu çekebilirsin.
				if(kontrol.getInt("success")==0){
					durum="Şifre ya da TC No hatalı..";
					basari=0;
				}
				else{
					basari=1;
					durum="Başarılı bir şekilde giriş yapıldı.";
					oturum=getSharedPreferences("tc", 0);
                	SharedPreferences.Editor editor=oturum.edit();
                	editor.putString("tc", tc);
                	editor.commit();
				}
			}catch (Exception e) {
				durum="catch";
				// TODO: handle exception
			}
			return null;
		}

		@Override
		protected void onPostExecute(Void result) {
			// TODO Auto-generated method stub
			super.onPostExecute(result);
			
			if(basari==1){
				Intent intent=new Intent(getApplicationContext(), Anasayfa.class);
				startActivity(intent);
			}
			else{
				Toast.makeText(getApplicationContext(), durum, Toast.LENGTH_LONG).show();
			}
		}
		
	}
}

 

picture-30491-1565085904.jpg
serhatleventyavas
16.04.2016 - 12:28

tam olarak nerede takıldınız siz 

özkan
17.04.2016 - 07:29
Mysql dosyamdan verileri http://yazbiryere.com/Ozkan356.php olarak JSON ÇIKTISINA dönüştürdüm. buradaki id 54 teki adresi webviewdeki java dosyamdaki url kısmına çekmek istiyorum. bundan sonra ne yapmam gerekiyor onu bilmiyorum.
özkan
17.04.2016 - 07:30
gönderdiğim java dosyasında 36. satıra bakarsanız oraya açıklama olarak yazdım