2014-02-19 87 views
0

這是我目前的情況:貯藏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(); 
    } 
} 
+1

你能更清楚嗎? – Behnam

+0

將數據存儲到變量不是一個好主意,因爲垃圾回收器可以在第一次刪除數據時,比如在應用程序之間切換,在某段時間後恢復應用程序等。看看SharedPreferences。我認爲這是存儲一些數據的最佳方式: http://developer.android.com/reference/android/content/SharedPreferences.html – domi

+0

我的歉意,請參閱修訂後的問題。 – user3247335

回答

0

要回答你的問題,是的,你需要單獨存儲這些EditText上的投入。將它們保存在一個數組或列表中可以使它比命名每個EditText輸入更具動態性,但它們需要分開保存。

使用TestWatcher自動執行此操作可能會使其不那麼痛苦。

0
String variable_name = getInput2.getText().toString(); 
String variable_name2 = getInput.getText().toString(); 
String variable_name3 = variable_name + variable_name2; 

從我的理解你應該得到的字符串和存儲他們,然後連接他們,當你需要。我希望你能更清楚你的問題。

+0

我的歉意,請看修改後的問題。 – user3247335