我有一个 PopUpActivity
,它会弹出一个窗口,我对此非常满意。
但是,我希望能够将弹出窗口中的信息返回到父 Activity ,而且还能够在弹出窗口关闭后调用父 Activity 上的函数。有人可以帮助我吗?
这是我在 PopUpActivity
中的代码:
public void closePopUpAndSendResultBack(){ // and how can i pass data to the previous activity?
//https://developer.android.com/training/basics/intents/result
Intent data = new Intent();
data.putExtra("data", "yo");
//startActivityForResult(data, 1); // gives me the error : android.content.ActivityNotFoundException: No Activity found to handle Intent { (has extras) }
setResult(Activity.RESULT_OK, data);
finish();
}
这是我的父(MainActivity)函数,我想在 popUpWindow 关闭后调用它:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if (resultCode == RESULT_OK) {
nameTextField.setText(""); // how can i get Yo inside here?
showTheButton(); // and how can this function get called?
}
}
}}
另外,这是我如何从我的 Mainactivity 中弹出该窗口:
theOkButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent pop_up_that_window = new Intent(MainActivity.this,PopActivity.class);
pop_up_that_window.putExtra("first", "Velkommen du der!");
startActivity(pop_up_that_window);
}
});
}
有人可以帮我吗?
最佳答案
在MainActivity中使用:
theOkButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent pop_up_that_window = new Intent(MainActivity.this,PopActivity.class);
pop_up_that_window.putExtra("first", "Velkommen du der!");
MainActivity.this.startActivityForResult(pop_up_that_window, 1);
}
});
仍然在 MainActivity 的 onActivityResult() 中使用以下代码:
String yo = data.getStringExtra("data")
nameTextField.setText(yo);
关于java - 使用 onActivityResult 调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59800275/