2011-07-29 446 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();