gpt4 book ai didi

android - 如何暂停 Activity 直到其他 Activity 返回结果?

转载 作者:行者123 更新时间:2023-11-30 01:28:10 25 4
gpt4 key购买 nike

我需要知道如何在另一个 Activity 发送值时暂停一个 Activity 。在我的代码中,主要 Activity 调用第二个 Activity ,第二个 Activity 发送结果,因此理想情况下,主要 Activity 应该等到它收到第二个 Activity 的结果。

public class MainActivity extends AppCompatActivity {
public final static String key = "abc";
public final static String key1 = "abcd";
String abc;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button b1 = (Button) findViewById(R.id.button);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Toast.makeText(MainActivity.this, "sbabs", Toast.LENGTH_SHORT).show();
send();

}
});
}

public void send() {
// Toast.makeText(MainActivity.this, "jsjaskb", Toast.LENGTH_SHORT).show();
// String str="this is";
String[] str = {"Blue", "Green", "Purple", "Red"};
Intent intent = new Intent(this, Second.class);
intent.putExtra(key, str);
startActivityForResult(intent, 1);


Toast.makeText(MainActivity.this, ""+abc, Toast.LENGTH_SHORT).show();

// Toast.makeText(this, ""+str, Toast.LENGTH_SHORT).show();

}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
abc = extras.getString(key1);
// txtinput1.setText(str);
// Toast.makeText(this, ""+str, Toast.LENGTH_SHORT).show();
}
}

public class Second extends AppCompatActivity {
public final static String key="abc";
public final static String key1="abcd";

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

Intent intent=getIntent();
String[] msg=intent.getStringArrayExtra(key);
Toast.makeText(this, "" + msg[0], Toast.LENGTH_SHORT).show();

Button b1 = (Button) findViewById(R.id.button2);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Toast.makeText(MainActivity.this, "sbabs", Toast.LENGTH_SHORT).show();
String str = "hello";
Intent intent1 = new Intent();
intent1.putExtra(key1, str);
setResult(RESULT_OK, intent1);
finish();


}
});
}

现在的问题是主 Activity 在第二个 Activity 可以分配值 str="hello"之前打印 str=null

最佳答案

Activity 在启动一个新的 Activity 后自动暂停。但它必须先退出你调用的 onClick() 方法。 abc 包含您想要的文本。 Toast 显示为空,因为 abc 为空。

你必须对

中的 abc 字符串做任何你想做的事
onActivityResult

方法,它保存正确的值。

关于android - 如何暂停 Activity 直到其他 Activity 返回结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36115292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com