Soru & Cevap

android studio fragment asynctask hatası

17.11.2017 - 10:08

Merhabalar 

Fragment içerisinde asynctask ile işlem yapmaya çalışıyorum. Aşağıda kodları yazdım fakat 
GirisKontrol().execute(); bölümünde

cannot find symbol meyhod GirisKontrol()


pDialog = new ProgressDialog(login.this);
bölümünde ise

incompatible types:login cannot be converted to Context 

hatası alıyorum . Yardımcı olabilirseniz çok sevinirim

İyi çalışmalar

 

fragment classım

 



import android.app.AlertDialog;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.icu.text.SimpleDateFormat;
import android.icu.util.Calendar;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;



import java.util.ArrayList;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;






import org.json.JSONException;
import org.json.JSONObject;

import static android.app.Activity.RESULT_OK;

/**
 * Created by METEHAN on 16.11.2017.
 */

public class login extends Fragment {
    EditText mail_input,sifre_input;
    String mail,sifre,sonuc,tarih;
    String URL_POST= "hamza.000webhostapp.com/login.php";
    String hata_mesaji="";
    ProgressDialog pDialog;
    Boolean hata = false;
    PostClass post = new PostClass();
    JSONObject cevap=null;
    public String donus_hata_mesaji;


    @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 cikis = (Button) view.findViewById(R.id.button2);
        mail_input = (EditText) view.findViewById(R.id.editText);
        sifre_input = (EditText) view.findViewById(R.id.editText2);

        mail = mail_input.getText().toString();//edittext değerini alıyoruz
        sifre = sifre_input.getText().toString();//edittext değerini alıyoruz

        cikis.setOnClickListener(new View.OnClickListener() { //Çıkış butonu tıklandığında

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub


                Calendar c = Calendar.getInstance();
                SimpleDateFormat format = new SimpleDateFormat("dd-MMM-yyyy");
                tarih = format.format(c.getTime());
                GirisKontrol().execute();

            }
        });

    //    Database db = new Database(getActivity());
     //   db.resetTables();
     //   db.kullaniciEkle(mail, sifre, tarih);
      //  Toast.makeText(getActivity(), "Kaydedildi", Toast.LENGTH_LONG).show();







        return view;
    }

    class GirisKontrol extends AsyncTask<Void, Void, Void> {
        private String sonucmesaji;

        protected void onPreExecute() {
            //  progress dialog
            pDialog = new ProgressDialog(login.this);
            pDialog.setMessage("Giriş Yapılıyor...");
            pDialog.setIndeterminate(true);
            pDialog.setCancelable(false);
            pDialog.show();
        }

        protected Void doInBackground(Void... unused) {
            // Building Parameters
            //String sifre_sha1 = Fonksiyonlar.sha1(sifre); //istersek sha1 şifreleme fonksiyonunu kullanabiliriz
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("mail", mail));
            params.add(new BasicNameValuePair("sifre", sifre));
            String json = post.httpPost(URL_POST,"POST",params,20000);

            Log.d("Gelen Json",""+json);//Gelen veriyi logluyoruz.Log Catten kontrol edebiliriz
            try {

                cevap = new JSONObject(json);
                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); //kullanıcıyı ekliyoruz.Ve Main activitye yönlendiriyoruz.

                        //Sonuc başarılı ise main activitye yönlendirdk.
                        FragmentManager fragmentManager = getFragmentManager();
                        FragmentTransaction ft = fragmentManager.beginTransaction();
                        FragmentAndroid fragmentAndroid = new FragmentAndroid();
                        ft.replace(R.id.content_frame, fragmentAndroid);
                        ft.addToBackStack(null);
                        ft.commit();
                    }
                }

            } catch (JSONException e) {
                e.printStackTrace();
            }
            return null;
        }
        // Sonuç başarılı ise bu kod çalışmıcak çünkü Main activitye yönlenmiş durumda



      protected void onPostExecute(Void unused) {
            // closing progress dialog
     //       pDialog.dismiss();
            // updating UI from Background Thread
     //       runOnUiThread(new Runnable() {
    //            public void run() {
      //              if(Integer.parseInt(sonuc) == 0){// Sonuç başarılı değil ise
     //                   AlertDialog alertDialog = new AlertDialog.Builder(login.this).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();
      //              }
      //          }


      //      });


          Toast.makeText(getActivity(), sonucmesaji, Toast.LENGTH_LONG).show();



      }





    }


}

 

86 Görüntülenme

2 Cevap

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

Profile picture for user Hamza3444
Hamza3444
19.11.2017 - 01:26

birinci hatayı sayenizde çözüm dediğiniz gibi yaptım GirisKontrol yanına bir new ekleyince oldu. İkinci hata için ise login.this yerine getActivity yerleştirince sorun çözüldü . Çok teşekkür ederım

Profile picture for user Hamza3444
Hamza3444
18.11.2017 - 10:35

Lütfen yardım edin ben yeni başlıyorum android studio ya . bu hatanın içinden çıkamıyorum. Sizler eminim kolay çözersiniz. Yardım edin...

Ayşenur Toprak
18.11.2017 - 03:08
giriş kontrol diye bi methodun yok o yazdığın class değiştirerek yaparsan sonuç alabilirsin.