2012-12-17 42 views
7

Tôi muốn kiểm tra chuỗi trong SharedPreferences đã sử dụng nó để lưu trữ tên người dùng và mật khẩu, vì vậy nếu tên người dùng và mật khẩu không rỗng hoặc rỗng, nó sẽ được chuyển đến nhà, nếu không tên người dùng và mật khẩu trống và nó sẽ được chuyển đến trang đăng nhập.cách kiểm tra chuỗi SharedPreferences trống hoặc không * android

Đây là tôi đang để kiểm tra chuỗi SharedPreferences, nhưng nó không làm việc ..

if(PreferenceConnector.USERNAME!=null){ 
    Intent intent = new Intent(MainActivity.this,MainHome_Activity.class); 
    startActivity(intent); 
} else { 
    Intent intent = new Intent(MainActivity.this,LoginFormPegawai_Activity.class); 
    startActivity(intent); 
} 

Tôi cố gắng để kiểm tra xem nó thông qua bánh mì nướng với mã này, và sau khi tôi đã cố gắng này, tôi nhận được SharedPreferences chuỗi không phải là rỗng hoặc trống ..

btn_logout_pegawai.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 

     //remove the SharedPreferences string 
     PreferenceConnector.getEditor(this).remove(PreferenceConnector.USERNAME) 
      .commit(); 
     PreferenceConnector.getEditor(this).remove(PreferenceConnector.PASSWORD) 
      .commit(); 

//checking the SharedPreferences string 
     if(PreferenceConnector.USERNAME!=null){ 
      Toast.makeText(MainHome_Activity.this,"not null", Toast.LENGTH_SHORT).show();  
     } 
     else { 
      Toast.makeText(MainHome_Activity.this,"null", Toast.LENGTH_SHORT).show(); 
     } 
    } 
}); 

Làm cách nào để kiểm tra chuỗi SharedPreferences một cách chính xác cho dù chuỗi rỗng hay rỗng?

Cảm ơn ..

Trả lời

22

Làm điều này:

SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE); 
String username = myPrefs.getString("USERNAME",null); 
String password = myPrefs.getString("PASSWORD",null); 

nếu tên người dùng và mật khẩu có mặt, họ sẽ có một giá trị nếu không họ sẽ được null.

if (username != null && password != null) 
{ 
    //username and password are present, do your stuff 
} 

Bạn không phải kiểm tra sự hiện diện riêng biệt. Cố gắng truy xuất giá trị của chúng sẽ trả về giá trị rỗng (nếu không có) hoặc giá trị (nếu có) một cách tự động.

+0

nhờ , làm việc của nó .. –

+0

vui mừng giúp đỡ. Chúc may mắn! –

+0

@AnupCowkur bạn có thể kiểm tra điều này ra http://stackoverflow.com/questions/36959279/how-do-i-use-a-dialogue-in-my-android-app-just-before-the-start-of- dịch vụ – Abhishek

1

thử này

if(PreferenceConnector.getString("USERNAME")!=null){ 

    Intent intent = new Intent(MainActivity.this,MainHome_Activity.class); 
    startActivity(intent); 
} 
else 
{ 
    Intent intent = new Intent(MainActivity.this,LoginFormPegawai_Activity.class); 
    startActivity(intent); 
} 
2
public static final String DEFAULT_VALUE = "default"; 
public static final String ANY_FIELD = "any_field"; 

SharedPreferences prefs = context.getPreferences(Activity.MODE_PRIVATE); 
String text = prefs.getString(ANY_FIELD, DEFAULT_VALUE); 
if (text.equals(DEFAULT_VALUE)) { 
    //TODO: 
} else { 
    //TODO: 
} 

Chúc may mắn!

-1

if (appSettings.contains (Constants.WEATHER_SUBN_POSTION)) {

 savedSubPostion = appSettings.getInt(Constants.WEATHER_SUBN_POSTION, 0); 
    } 

Trước tiên kiểm tra của nó chứa giá trị

-1

chỉ cần kiểm tra kích thước bằng phương pháp kích thước sp.getAll().

Các vấn đề liên quan