当我在EditText中输入一个值时,我无法将其与我的SharedPreference中的值进行比较。
这是我的EditText首选项
<EditTextPreference
android:defaultValue="1234"
android:inputType="number"
android:key="userid"
android:maxLength="4"
android:singleLine="true"
android:summary="To Access App setting set a PIN"
android:title="Set PIN" />
这是我的Methode代码:
private void GoToSettings(){
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplication());
String userpin = prefs.getString("userid", "");
String userpin1 = txtpin.getText().toString();
if(userpin.equals(userpin1)){
/*Intent intent = new Intent(FingerprintScannerActivity.this, PreferencesActivity.class);
startActivity(intent);*/
Toast.makeText(getApplicationContext(),
"Good",
Toast.LENGTH_SHORT).show();
}else Toast.makeText(getApplicationContext(),
"Error PIN",
Toast.LENGTH_SHORT).show();
}
答案 0 :(得分:0)
每当比较Strings
时,请使用以下方法
string1.equals(string2)
不要对字符串使用'=='运算符 有关详细解答Java String.equals versus ==
,请参阅此处答案 1 :(得分:0)
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplication()); String userpin = prefs.getString("userid", "");
将其更改为:String userpin = prefs.getString("userid", null);
返回null而不是空字符串更有效,然后你可以使用:
if((userpin == null) ? (userpin1 == null) : userpin.equalsIgnoreCase(userpin1))