我的代碼是這樣獲得空指針異常android系統中共享偏好
//要保存我的表單數據
private final OnClickListener mFinishListener = new OnClickListener() {
public void onClick(View v) {
SharedPreferences.Editor editor = getPreferences(0).edit();
editor.putString("txtName",mName.getText().toString());
servState = 1;
editor.putInt("AppState", servState);
editor.commit();
}
//取回屬於我的表單數據
protected void onResume() {
super.onResume();
SharedPreferences prefs = getPreferences(0);
int restoreServState = prefs.getInt("AppState", 0);
if(restoreServState == 0){
setContentView(R.layout.main);
Button button = (Button)findViewById(R.id.btnFinish);
button.setOnClickListener(mFinishListener);
}
else {
setContentView(R.layout.pwd);
int selectionStart = prefs.getInt("selection-start", -1);
int selectionEnd = prefs.getInt("selection-end", -1);
if (selectionStart != -1 && selectionEnd != -1) {
//mSaved.setSelection(selectionStart, selectionEnd);
}
}
}
我在保存上述代碼中的OnClick事件中的數據時,獲取NullPointerException。確切的線我得到的問題是
editor.putString("txtName",mName.getText().toString());
請建議這裏有什麼問題嗎?我是否需要更改清單文件中的任何內容以使用共享首選項?
有三種不同的東西可能爲空 - 您需要通過一些調試來找出它的含義。它們是'editor','mName'和'mName.getText()'。找出哪一個是空的,並讓我們知道。 –
mName不爲空我檢查了,我把一個像if(editor!= null)這樣的語句,它仍然拋出相同的,我dint把文本框爲空,所以它不能爲空。請任何其他想法? –