2011-07-29 280 views
1

我做了一个类,用于将用户密码保存到sharedPrefences(Password.PASSWORD_PREF_KEY,0)中,该工具完美地工作,但他们登录的活动在启动时被取消。如果有人能告诉肉我错了,我将代码链接起来。使用sharedPreferences登录屏幕

这里是代码:

final String p1 = pass1.getText().toString(); 

你不”:

import android.app.Activity; 
import android.content.intent; 
import android.content.SharedPreferences; 
import android.os.Bundle; 

import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 


public class LogIn extends Activity { 


private EditText pass1; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.password); 


SharedPreferences passwdfile = getSharedPreferences(Password.PASSWORD_PREF_KEY,1); 
final String p3 = passwdfile.getString(Password.PASSWORD_PREF_KEY, null); 
final String p1 = pass1.getText().toString(); 
Button page1 = (Button) findViewById(R.id.btn_login); 
page1.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
if (p3.equals(p1)) { 
    startActivity(new Intent(LogIn.this,Main.class)); finish(); 
} 
else { 
    Toast.makeText(getApplicationContext(),"Incorrect Password",Toast.LENGTH_LONG).show(); 
} 

}; 
}); 
}; 

} 
+0

你得到一个异常或东西吗? – Shlublu

+0

从你的代码看,你还没有使用findViewById来初始化pass1。这会在您尝试使用它时导致异常。 – Streaming

回答

0

你也可以分享的logcat日志更好的答案,但...

看一眼我发现后t似乎在此通话之前的任何地方初始化pass1

-1

我们可以得到异常堆栈,以便找到根本原因吗?我的猜测是,应用程序可能发生空指针异常,我建议在p3上进行空检查。

+0

好的谢谢大家的帮助,我看到我的问题。 – Jonathan

+0

嗨乔纳森,你能告诉我根本原因吗?欣赏。 – ShawnWang

0
final String p3 = passwdfile.getString("name uf the variable/key name","default value you need"); 
getSharedPreferences("here give the name of shared preference",MODE_PRIVATE); 
0
startActivity(new Intent(LogIn.this,Main.class)); 

尝试删除finish();