我现在已经尝试了至少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
答案 0 :(得分:1)
您正在引用您的活动中不存在的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();
}
}
}
);
然后在onResume / onCreate(我不知道你的完整代码看起来如何)持有R.id.codeText的活动获取String并设置它。
答案 1 :(得分:0)
您尝试编辑的EditText
不在当前视图中,因此无法访问。
我不确定您要尝试的是什么,但如果您想要在返回上一个活动时在编辑文本中显示值,请尝试将值保存在当前活动的共享首选项中并更新您的{ {1}}在其所属的EditEtxt
个活动中。{/ p>