Pse*_*328 4 android android-intent
好吧,我又来了.还在学习.现在我需要从2个活动来回传递整数值.第一个活动将计数器值传递给第二个(跟踪玩家统计数据).第二个活动能够将统计数据重置为零,从而将数字传回.但我无法理解它.这是我到目前为止所拥有的......
第一项活动(主要):
@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;
Run Code Online (Sandbox Code Playgroud)
请填写"?"
第二项活动(选项):
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();
}
Run Code Online (Sandbox Code Playgroud)
再次,无法弄清楚"?".
回到我的第一个活动,我不知道接下来会发生什么:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Run Code Online (Sandbox Code Playgroud)
渴望弄明白这一点.提前致谢.
nan*_*esh 12
这样做
startActivityForResult(i, 100);
Run Code Online (Sandbox Code Playgroud)
对于setResult
setResult(RESULT_OK);
Run Code Online (Sandbox Code Playgroud)
您可以使用setresult进行更高级的结果发送
intent = new Intent();
intent.putExtra("key", "I am done");
setResult(1001, intent);
Run Code Online (Sandbox Code Playgroud)
在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
}
}
}
Run Code Online (Sandbox Code Playgroud)
你不必使用setResult,如果你需要检查的是你是否从活动返回然后不设置它并且不要检查onActivityResult
| 归档时间: |
|
| 查看次数: |
16965 次 |
| 最近记录: |