Soru & Cevap

Php json parse hatalari ...

31.12.2017 - 08:59

Merhabalar arkadaslar Android studio ile php json parse yaparak login islemi gerceklestiriyorum. Kodlarım aşağıda 1- internet baglantisi olmadiginda baglan butonuna basinca program durduruldu hatasi veriyor . 2- butona basmadan once internet varsa baglaniyor diye progress aciliyo bu arada internet koparsa yine durduruldu hatasi aliyorum. 3- hostingdeki php dosyasini silip denedim bu sefer baglaniyor progress i aciliyo bir muddet kalip kapaniyo uygulamada bir degisiklik olmuyo Bu 3 sorunun cozumu icin ne yapmam gerekir mantigini veya varsa ornek bir kodunu paylasirsaniz sevinirim veya bir kucuk makale paylasirsaniz bama cok yardimci olursunuz. Simdiden tesekkirler public class login extends Fragment implements View.OnClickListener { EditText mail_input,sifre_input; String mail,sifre,sonuc,tarih,sonucmesaji; String URL_POST= "http://www.oradaneleroluyor.xyz/login.php"; String hata_mesaji=""; ProgressDialog pDialog; Boolean hata = false; JSONObject cevap=null; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub View view = inflater.inflate(R.layout.loginn, container,false); Button giris = (Button) view.findViewById(R.id.button2); mail_input = (EditText) view.findViewById(editText); sifre_input = (EditText) view.findViewById(R.id.editText2); Calendar c = Calendar.getInstance(); SimpleDateFormat format = new SimpleDateFormat("dd-MMM-yyyy"); tarih = format.format(c.getTime()); giris.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { buttonClicked(v); } }); return view; } public void buttonClicked (View view) { mail = mail_input.getText().toString();//edittext değerini alıyoruz sifre = sifre_input.getText().toString();//edittext değerini alıyoruz if (Fonksiyonlar.giriskontrol(getActivity())) { hata_mesaji += "Daha önce giriş yapılmış\n"; hata=true; } if(mail_input.getText().toString().trim().equals("") ) { hata_mesaji += "kullanıcı adı boş bırakılamaz\n"; hata=true; } int sifre_karakter = sifre.length(); if(sifre_karakter { String result; protected void onPreExecute() { // progress dialog pDialog = new ProgressDialog(getActivity()); pDialog.setMessage("Giriş Yapılıyor..."); pDialog.setIndeterminate(true); pDialog.setCancelable(false); pDialog.show(); } @Override protected String doInBackground(String... strings) { List params = new ArrayList(); params.add(new BasicNameValuePair("mail", mail)); params.add(new BasicNameValuePair("sifre", sifre)); try { result= postClass.Post(URL_POST,params); } catch (Exception e) { e.printStackTrace(); } return result; } @Override protected void onPostExecute(String s) { pDialog.dismiss(); try { cevap = new JSONObject(s); sonucmesaji = cevap.getString("sonucmesaji"); if (cevap.getString("sonuc") != null) { sonuc = cevap.getString("sonuc"); if(Integer.parseInt(sonuc) == 1){ //Eğer giriş başarılı ise Database db = new Database(getActivity()); db.resetTables(); db.kullaniciEkle(mail, sifre, tarih); getFragmentManager().popBackStack("bayraklogin",FragmentManager.POP_BACK_STACK_INCLUSIVE); FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction ft = fragmentManager.beginTransaction(); FragmentAndroid fragmentAndroid = new FragmentAndroid(); ft.replace(R.id.content_frame, fragmentAndroid,"banaozelbayrak"); ft.addToBackStack("banaozelbayrak"); ft.commit(); } if(Integer.parseInt(sonuc) == 0){// Sonuç başarılı değil ise AlertDialog alertDialog = new AlertDialog.Builder(getActivity()).create(); alertDialog.setTitle("Hata"); alertDialog.setMessage(sonucmesaji);//Sonuc mesajıyla bilgilendiriyoruz. alertDialog.setCancelable(false); alertDialog.setButton(RESULT_OK,"Tamam", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { sifre_input.setText(""); } }); alertDialog.show(); } } } catch (JSONException e) { e.printStackTrace(); } } } }

3 Görüntülenme

4 Cevap

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

Profile picture for user Hamza3444
Hamza3444
03.01.2018 - 10:10
Kodu normal kod penceresine yazdim ama nedense text olarak atti buraya. Size zahmet bi bakabilirseniz ben aslinda try catch kullaniyorum ama nerede hata yapiyor olabilirim acaba ? Butona bastiktan sonra internet koparsa durduruldu hatasi aliyorum
Profile picture for user Antivir
Antivir
03.01.2018 - 09:55
Try catch kullanabilirsin
Profile picture for user Hamza3444
Hamza3444
03.01.2018 - 09:30
Peki calistirdiktan sonra internet giderse ne yapabiliriz ?
Profile picture for user Antivir
Antivir
03.01.2018 - 09:11

Merhaba internet bağlantı durumunu kontrol ederek çalıştırabilirsiniz.

private boolean isNetworkConnected() {
  ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

  return cm.getActiveNetworkInfo() != null;
 }

manifest iznini eklemeyi unutmayın. 

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

iyi çalışmalar.