Android 单击列表视图后,返回活动,但不创建新活动
我的应用程序中有一个选项菜单,显示用户在地图上添加的所有标记的列表。标记使用ListView表示,当用户选择该ListView的一个项目时,我想返回(恢复?)到主活动,将标记位置作为参数传递,但不创建新活动。可能吗?现在我正在创建一个新的活动,当用户单击任何项目时,是否可以简单地返回到主活动 MarkersList活动的代码:Android 单击列表视图后,返回活动,但不创建新活动,android,listview,Android,Listview,我的应用程序中有一个选项菜单,显示用户在地图上添加的所有标记的列表。标记使用ListView表示,当用户选择该ListView的一个项目时,我想返回(恢复?)到主活动,将标记位置作为参数传递,但不创建新活动。可能吗?现在我正在创建一个新的活动,当用户单击任何项目时,是否可以简单地返回到主活动 MarkersList活动的代码: mainListView.setOnItemClickListener(new OnItemClickListener() { public void onIte
mainListView.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> arg0, View v, int position, long id)
{
Intent intent = new Intent(getBaseContext(), MainActivity.class);
MyMarkerObj marker = (MyMarkerObj)table.get(position);
intent.putExtra("position", marker.getId());
startActivity(intent);
finish();
}
});
使用
StartActivityForResult(intent,reqcode)
代替startActivity(intent)
你的第一个
第一项活动
Intent i=new Intent(MainActivity.this, MarkerActivity.class);
startActivityForResult(i,1); <-- 1 is request code, you can give anything.
而且
ONACTIVITY第一个活动的结果
得到这样的值
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if(requestCode == 1 && resultCode == RESULT_OK)
{
Bundle bun=data.getExtras();
int position= bun.getInt("position");
}
}
我不确定我是否理解……那么,我是否应该使用“setResult(marker.getId(),intent);”而不是“intent.putExtra”(“position”,marker.getId());”来添加参数以便MainActivity可以读取它?我是否应该从MainActivity调用onActivityResult?@Alberto如果您想传递值,像我在上面所展示的一样,输入额外的意图,检查我的编辑。@Alberto yes。。当你按下onActivity,然后按下
ctrl+space
时,这是覆盖的方法。它将显示。。按照我在回答中所展示的方法执行。。把答案读两三遍才能理解。。如需更多详细信息,请在谷歌搜索StartActivityForResult
Intent intent = getIntent();
MyMarkerObj marker = (MyMarkerObj)table.get(position);
intent.putExtra("position", marker.getId());
setResult(responsecode,intent);
finish();
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if(requestCode == 1 && resultCode == RESULT_OK)
{
Bundle bun=data.getExtras();
int position= bun.getInt("position");
}
}