gpt4 book ai didi

android - 真的没有得到 setResult 和 onActivityResult

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:46:58 24 4
gpt4 key购买 nike

好的,我又来了。还在学习。现在我需要在 2 个 Activity 中来回传递整数值。第一个 Activity 将计数器值传递给第二个 Activity (跟踪玩家统计数据)。第二个 Activity 能够将统计数据重置为零,从而将数字传回。但我就是无法理解它。这是我到目前为止所拥有的...

第一个 Activity (主要):

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_settings:
Intent i = new Intent(this, Options.class);
Bundle counters = new Bundle();
counters.putInt("plWin", plWin);
counters.putInt("plLoss", plLoss);
counters.putInt("plDraw", plDraw);
i.putExtras(counters);
startActivityForResult(i, ?);
return true;

请填写“?”

第二个 Activity (选项):

public void onBackPressed() {
super.onBackPressed();
Intent i = new Intent();
Bundle counters = new Bundle();
counters.putInt("Wins", wins);
counters.putInt("Losses", losses);
counters.putInt("Draws", draws);
i.putExtras(counters);
setResult(?, i);
finish();
}

同样,无法弄清楚“?”。

回到我的第一个 Activity ,我不知道之后会发生什么:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);

渴望弄清楚这一点。提前致谢。

最佳答案

这样做

startActivityForResult(i, 100);  

对于设置结果

setResult(RESULT_OK);

您可以使用 setresult 进行更高级的结果发送,例如

intent = new Intent();
intent.putExtra("key", "I am done");
setResult(1001, intent);

并在 onActivityResult 中

protected void onActivityResult(int requestCode, int resultCode, Intent data) {    
if(requestCode == 100)
{
String key = data.getStringExtra("key");
if(resultcode == 1001 && key!= null && key.equals("I am done"){
//do something
}else{
//do something else
}

}
}

你不必使用 setResult,如果你需要检查的只是你是否从 Activity 中返回,那么不要设置它,也不要检查 onActivityResult

关于android - 真的没有得到 setResult 和 onActivityResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12233106/

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