簡體   English   中英

如何將用戶輸入從EditText保存到要在其他Activity上使用的變量

[英]How to save user input from EditText to a variable to be used on a different Activity

我在Android Studio中有一個編輯文本,我希望用戶輸入一個名稱,然后可以將其存儲為變量。 然后,我想在我的主要活動中將此變量添加到textview中。

現在所有具有空白的活動是帶有編輯文本和按鈕的,用於將用戶輸入保存為變量。

編輯

好的,我將改變我的方法。 在我的主要活動中,我有兩個文本視圖。 如果我將它們更改為編輯文本,那么如何在沒有保存按鈕的情況下將其從主要活動中保存下來,以便用戶鍵入的內容仍然存在?

將其保存在“ 共享首選項”中 ,然后從其他活動中檢索它。

要將String保存在共享首選項中,可以創建如下所示的方法:

public static void setUsername(Context context, String username) {
    SharedPreferences prefs = context.getSharedPreferences("myAppPackage", 0);
    SharedPreferences.Editor editor = prefs.edit();
    editor.putString("username", username);
    editor.commit();
 }

要恢復它:

public static String getUsername(Context context) {
    SharedPreferences prefs = context.getSharedPreferences("myAppPackage", 0);
    return prefs.getString("username", "");

 }

編輯:
在包含EditText的活動中,可以按以下方式調用方法:
setUsername(this,myEditText.getText()。toString());

在包含TextView的Activitiy中:
myTextView.setText(getUsername(this));

您可以使用edit.getText().toString()獲取用戶輸入。

要啟動新活動並將字符串傳遞給它,請使用

Intent intent = new Intent(this, OtherActivity.class);
intent.putExtra("key", theString);
startActivity(intent);

編輯

為了更容易,您應該在布局中添加一個按鈕,以便當用戶按下該按鈕時,您可以使用字符串啟動下一個活動。 這應該進入您的活動

public class BlankActivity implements OnClickListener {

     private EditText mEditText;

     @Override
     protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.your_layout);

          //find editText
          mEditText = (EditText) findViewById(R.id.your_edit_text_id);
          //listen button
          findViewById(R.id.your_button_id).setOnClickListener(this);

     }

     @Override
     public void onClick(View v) {
          String theString = mEditText.getText().toString();
          Intent intent = new Intent(this, OtherActivity.class);
          intent.putExtra("key", theString);
          startActivity(intent);
     }


}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM