這是我目前的情況:貯藏EDITTEXT變量
我有一個常規的XML頁面,點擊它時,會打開一個彈出式對話框一個TextView。 該對話框包含2個editText。目前我的代碼(OnClick - Done按鈕)獲取兩個編輯文本的值,並將它們放入單個TextView中。但是,當我再次打開彈出窗口,而不是在其自己的editText(其中每個字符串最初是輸入)列出的兩個字符串存儲在文本視圖中的組合字符串出現在一個編輯文本中。 問題是,雖然我從2個不同的editText獲取字符串並將它們存儲到一個textView中。我無法單獨獲取每個字符串。 我知道我可能需要將每個editText中的字符串存儲到變量中,然後我可以使用這些變量來顯示textView中的字符串(以及editText - 當我再次打開彈出對話框時) 我將如何去這個? 感謝您的幫助
代碼:
public class MainActivity extends Activity {
/** Called when the activity is first created. */
TextView showPopUpButton; //NEW
EditText getInput; //NEW
EditText getInput2; //NEW
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
showPopUpButton = (TextView) findViewById(R.id.buttonShowPopUp); //NEW
showPopUpButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showPopUp3();
}
});
}
private void showPopUp3() {
AlertDialog.Builder helpBuilder = new AlertDialog.Builder(this);
helpBuilder.setTitle("Enter PU Builder");
LayoutInflater inflater = getLayoutInflater();
View checkboxLayout = inflater.inflate(R.layout.popuplayout, null);
getInput = (EditText) checkboxLayout.findViewById(R.id.editText1); //MISTAKE
getInput2 = (EditText) checkboxLayout.findViewById(R.id.editText2); //MISTAKE
getInput.setText(showPopUpButton.getText()); //New to keep the text in the editText when done is pressed
getInput2.setText(getInput2.getText()); //New test
helpBuilder.setView(checkboxLayout);
helpBuilder.setPositiveButton("Done", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
showPopUpButton.setText(getInput.getText() + ", " + getInput2.getText()); //NEW
}
});
AlertDialog helpDialog = helpBuilder.create();
helpDialog.show();
}
}
你能更清楚嗎? – Behnam
將數據存儲到變量不是一個好主意,因爲垃圾回收器可以在第一次刪除數據時,比如在應用程序之間切換,在某段時間後恢復應用程序等。看看SharedPreferences。我認爲這是存儲一些數據的最佳方式: http://developer.android.com/reference/android/content/SharedPreferences.html – domi
我的歉意,請參閱修訂後的問題。 – user3247335