2016-11-04 9 views
0

EditTextに値を入力すると、My SharedPreferenceの値と比較することができません。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

が解決:私はPreferenceManager.setDefaultValuesをロードすることを忘れて(これは、R.xml.preferences_xml、false); –

答えて

0
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplication()); 
String userpin = prefs.getString("userid", ""); 

変更、それがためにこれを参照してください。String userpin = prefs.getString("userid", null); そのヌル代わりに空の文字列の戻るには、その後、あなたが使用することができ、より効率的な:

if((userpin == null) ? (userpin1 == null) : userpin.equalsIgnoreCase(userpin1)) 
+0

エラーPINが再度表示されます:s:s –

+0

@ YsenEycenこれは比較が悪いという意味ではありません。 sharedPrefの 'userid'値の値をここに出力します 'Log.d(TAG、userpin +" "userpin1); ' – Lior

+0

コードは、設定アクティビティを開いたときにのみ動作し、そうでなければeditTextに値を設定します設定アクティビティコードdon't workを開かずに –

0

Strings次のアプローチを使用し

string1.equals(string2)

使用しないでくださいを比較するときはいつでも文字列の '=='演算子
は、より詳細な回答にJava String.equals versus ==

+0

同じ問題です。ボタンをクリックすると、指示にメッセージが表示されます –

関連する問題