Soru & Cevap

shared preference clear işlemi

26.08.2016 - 10:50

Merhabalar öncelikle androidde yeni olduğumu belirtmek istiyorum.

Bir Login Arayüzü yaptım. Kullanıcı giriş yaparken beni hatırlaya bastığında boolean türünde giris_yaptimi değişkenini true yaparak shared preference ile kaydediyorum. Uygulamayı her açtığında da sorulatıyorum eğer giris_yaptimi=true ise direk olarak atla bu sayfayı ikinci sayfaya geç şeklinde basit bi remember me işlemi aslında. İkinci sayfada da Logut butonu altına kayıtlı olan shared preferanceyi clear yaptığımda giris_yaptimi booleanı false olmuyor. İstediğim şu ki logout a basınca hafızadaki beni hatırla silinsin tekrar login ekrarnına dönsün. Ama bence 2.ci sayfada log out yapınca bir türlü login ekrarnına dönüş sağlayamıyorum. biraz uzun yazmış olabilirim :) şimdiden yardımlarınız için teşekkür ederim. 

 

Main Activiy

------------------------

 

 


 



public class MainActivity extends AppCompatActivity implements View.OnClickListener{

 ///////////// LOGİN EKRANI //////////////////////////

    private EditText editTextUsername;
    private EditText editTextPassword;
    private Button buttonLogin;
    Button buttonregister;
    private String username;
    private String password;
    CheckBox benihatirla;

    SharedPreferences share;
    SharedPreferences.Editor edit;



    public Boolean giris_yaptimi;

    TextView sonuc,sonuc2;

    String sonuc_nedir;




    @Override
    protected void onCreate(Bundle savedInstanceState) {

       // giris_yaptimi=false;
        


        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        editTextUsername = (EditText) findViewById(R.id.editTextUsername);
        editTextPassword = (EditText) findViewById(R.id.editTextPassword);

        buttonLogin = (Button) findViewById(R.id.buttonLogin);
        buttonregister=(Button)findViewById(R.id.btn_kayit_ol);

        benihatirla=(CheckBox)findViewById(R.id.chk_hatirla);
        sonuc=(TextView)findViewById(R.id.textView);
        sonuc2=(TextView)findViewById(R.id.textView2);




        buttonLogin.setOnClickListener(this);




        if (giris_yaptimi=true){



            sonuc2.setText("true");

            Intent i = new Intent(MainActivity.this, Kayitformu.class);

            startActivity(i);

        }



      buttonregister.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {

              Intent i = new Intent(MainActivity.this, Kayitformu.class);

              startActivity(i);


              // intent.putExtra(KEY_USERNAME, username);

          }
      });


    }



    private void userLogin() {
        username = editTextUsername.getText().toString().trim();
        password = editTextPassword.getText().toString().trim();

        StringRequest stringRequest = new StringRequest(Request.Method.POST, LOGIN_URL,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {

                        String durum="success";
                        if(response.trim().equals(durum)){
                            openProfile();




                        }

                        else{
                            //Toast.makeText(getApplicationContext(),"Beni Hatırla Dedi",Toast.LENGTH_SHORT).show();

                           Toast.makeText(MainActivity.this,response,Toast.LENGTH_LONG).show();
                        }
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_LONG ).show();
                    }
                }){
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String,String> map = new HashMap<String,String>();
                map.put(KEY_USERNAME,username);
                map.put(KEY_PASSWORD,password);
                return map;
            }
        };

        RequestQueue requestQueue = Volley.newRequestQueue(this);
        requestQueue.add(stringRequest);
    }

    private void openProfile(){

       

         //giris_yaptimi=true;

        //sonuc.setText(Boolean.toString(giris_yaptimi));



       /// BURDA GÖNDERİYORUMM

        if (benihatirla.isChecked()){
            giris_yaptimi=true;
            share=getSharedPreferences("girdi",MODE_PRIVATE);
            edit=share.edit();


            edit.putBoolean("hatirla",giris_yaptimi);
            edit.commit();

            Toast.makeText(getApplicationContext(),"Giriş Başarılı Beni Hatırla",Toast.LENGTH_SHORT).show();
//
            Intent intent = new Intent(this, Kayitformu.class);
            startActivity(intent);
        }
        else{

            giris_yaptimi=false;

            share=getSharedPreferences("girdi",MODE_PRIVATE);
            edit=share.edit();


            edit.putBoolean("hatirla",giris_yaptimi);
            edit.commit();



            Toast.makeText(getApplicationContext(),"Giriş Başarılı Normal",Toast.LENGTH_SHORT).show();
//
            Intent intent = new Intent(this, Kayitformu.class);
            startActivity(intent);

        }





    }



    @Override
    public void onClick(View v) {
        userLogin();
    }

}

 


// LOGOUT EKRANII //

public class Kayitformu extends AppCompatActivity {

    TextView sonuc;
    public Boolean giris_yaptimi2;
    Button cikis;
    SharedPreferences share2;
    SharedPreferences.Editor edit2;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_kayitformu);
        sonuc = (TextView) findViewById(R.id.textView);

        cikis = (Button) findViewById(R.id.cikis_yap);


        share2 = getSharedPreferences("girdi", MODE_PRIVATE);
        edit2 = share2.edit();

        giris_yaptimi2 = share2.getBoolean("hatirla", Boolean.parseBoolean("yok"));

        sonuc.setText(Boolean.toString(giris_yaptimi2));



//  LOGOUT  BUTONU
        cikis.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


                edit2.clear();
                edit2.commit();


                    Intent intent = new Intent(Kayitformu.this, MainActivity.class);
                    startActivity(intent);
                    //Toast.makeText(getApplicationContext(), "Silindi", Toast.LENGTH_SHORT).show();



            }
        });


        //noldu=true;
        //sonuc.setText(Boolean.toString(noldu));


        //Toast.makeText(getApplicationContext(),"BAŞARILI",Toast.LENGTH_SHORT).show();


    }
}

 

 

 

24 Görüntülenme

2 Cevap

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

Profile picture for user doktorbune41
doktorbune41
26.08.2016 - 05:30

Hocam şimdi gördüm hatanı Yerlerini yanlış yazmışsın.Şu Şekilde düzeltirsen çalışıcaktır.
 

Intent intent = new Intent(MainActivity.class,Kayitformu.this);
startActivity(intent);

 

picture-87689-1471182166.jpg
bilisimciyim
26.08.2016 - 05:05

ordan sonra sayfa refres oluyor ama maintactiviye yönlenmiyor . hala kayitformu.class çalışıyor.