![](/img/trans.png)
[英]How to save user input from EditText to a variable to be used on a different Activity
[英]How to edit an EditText from a different activity
我已經嘗試這樣做至少40分鍾了,這是我的最后消息來源。
好的,所以我嘗試編輯來自其他活動的edittext。
在第一個文件中:
(編輯名稱為codeText的文本)
EditText code = (EditText)findViewById(R.id.codeText);
(一點點下降)
Button tools = (Button)findViewById(R.id.toolsBtn);
tools.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText code = (EditText)findViewById(R.id.codeText);
Intent intent = new Intent(v.getContext(), startNET.class);
intent.putExtra("code", code.getText().toString());
startActivity(intent);
}
}
);
在startNET(我正在嘗試從中編輯editText的其他文件)中:
Intent intent = getIntent();
final String full_code = intent.getStringExtra("code");
(一點點下降)
plyerInvinc.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
String code = full_code + "\n test";
EditText code_text = (EditText)findViewById(R.id.codeText);
code_text.setText(code);
goBackToNew(v); // this is a function for switching activities.
} catch (Exception e) {
Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show();
}
}
}
);
這將返回此錯誤: error
您引用的是活動中不存在的EditClass,然后嘗試為其設置文本。 因此,您將收到一個空指針異常。
如果我對您的理解正確,則應該將值傳遞給:
plyerInvinc.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
String code = full_code + "\n test";
//Here pass code to the activity in which you want to set the EDitText
goBackToNew(v); // this is a function for switching activities.
} catch (Exception e) {
Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show();
}
}
}
);
然后在保存R.id.codeText的活動的onResume / onCreate(我不知道完整代碼的樣子)中,獲取String並進行設置。
您要編輯的EditText
不在當前視圖中,因此將無法訪問。
我不確定您要達到什么目的,但是如果您想在返回上一個活動時在編輯文本中顯示一個值,請嘗試將該值保存到當前活動的共享首選項中,並在onResume
中更新EditEtxt
它所屬的活動。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.