【发布时间】:2015-08-11 11:10:39
【问题描述】:
我想在每次启动应用程序时检查editext 中的值。我正在使用共享首选项来存储 edittext 值用户在第一次启动应用程序时输入的值。如果edittext 中的值与保存的共享首选项值相同,则下次启动应用程序时,应用程序不会显示该活动,而是跳过它并显示下一个活动。可能即使edittext 中的值正确,应用程序也不会跳过该活动。我认为比较值可能不正确。
MainActivity
public class LoginActivity extends Activity{
EditText et;
int keyDel;
String tempString;
char[] stringArray;
SharedPreferences sharedpreferences;
public static final String mypreference = "mypref";
public static final String PIN = "passKey";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.loginactivity);
et = (EditText)findViewById(R.id.editText1);
///////////////////////////////////// Shared Preference Code Starts /////////////////////////////////////////////////////////////////////////
sharedpreferences = getSharedPreferences(mypreference, Context.MODE_PRIVATE);
if (sharedpreferences.contains(PIN)) {
et.setText(sharedpreferences.getString(PIN, ""));
}
String chk_et = et.getText().toString();
if(chk_et == sharedpreferences.getString(PIN, "")){
startActivity( new Intent(LoginActivity.this, Welcome.class));
finish();
//finish();
}else{
Toast.makeText(getApplicationContext(), "Wrong Details", Toast.LENGTH_SHORT).show();
}
///////////////////////////////////// Shared Preference Code Ends ///////////////////////////////////////////////////////////////////////////
///////////////////////////////////// Text Watcher Code Starts //////////////////////////////////////////////////////////////////////////////
et.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
et.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if(keyCode != KeyEvent.KEYCODE_DEL && et.getText().length() !=0)
{
if(et.getText().length()==4 ||et.getText().length()==8)
{
tempString=et.getText().toString()+"-";
char c=tempString.charAt(tempString.length()-2);
if(c!='-')
{
stringArray = tempString.toCharArray();
stringArray[tempString.length()-2]=stringArray[tempString.length()-1];
stringArray[tempString.length()-1]=c;
//code to convert charArray back to String..
tempString=new String(stringArray);
et.setText(tempString);
et.setSelection(tempString.length());
tempString=null;
}
}
}
return false ;
}
});
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});
///////////////////////////////////// Text Watcher Code Ends //////////////////////////////////////////////////////////////////////////////
} // onCreate ends
public void Save(View view) {
String et_new = et.getText().toString();
Editor editor = sharedpreferences.edit();
editor.putString(PIN, et_new);
editor.commit();
}
} // Activity ends
【问题讨论】: