我的主要活动中有一个TextView。
按下按钮,我打开另一个活动,然后转到可以重命名我的选项
文字检视
btnSet.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, Options.class);
startActivity(intent);
}
});
在我的“选项”活动中,我这样重命名TextView
public class Options extends MainActivity{
public static Boolean isRenamed;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.options);
String lblName = ("Counter 1");
Button btnOk = (Button) findViewById(R.id.btn_ok);
btnOk.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent backToMain = new Intent(Options.this, MainActivity.class);
EditText labelName = (EditText) findViewById(R.id.set_name);
String lblName = labelName.getText().toString();
backToMain.putExtra(LABEL_NAME, lblName);
isRenamed = true;
startActivity(backToMain);
finish();
}
});
}
}
我正在使用boolean isRenamed并单击确定后将其设置为true
在我的主要活动中,我已经设定了
if (Options.isRenamed == true) {
// Get the message from the intent
Intent backToMain = getIntent();
String lblName = backToMain.getStringExtra(Options.LABEL_NAME);
// Edit the text view
TextView label = (TextView) findViewById(R.id.label1);
label.setText(lblName);
}
现在,它正在强制关闭,但是是否有一些更优雅的方法来查看我是否已重命名文件,然后执行该代码段进行设置?
最佳答案
使用startActivityForResult()
代替startActivity()
。在选项活动中:
public static final int RENAMED = 100;
btnOk.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent backToMain = new Intent(Options.this, MainActivity.class);
EditText labelName = (EditText) findViewById(R.id.set_name);
String lblName = labelName.getText().toString();
backToMain.putExtra(LABEL_NAME, lblName);
isRenamed = true;
setResult(RENAMED);
finish();
}
});
在MainActiviy中,覆盖
onActivityResult()
并当它被触发时,检查
resultCode
参数是否等于RENAMED。关于java - 从Intent返回后执行代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11435461/