Android 单击列表视图后,返回活动,但不创建新活动

Android 单击列表视图后,返回活动,但不创建新活动,android,listview,Android,Listview,我的应用程序中有一个选项菜单,显示用户在地图上添加的所有标记的列表。标记使用ListView表示,当用户选择该ListView的一个项目时,我想返回(恢复?)到主活动,将标记位置作为参数传递,但不创建新活动。可能吗?现在我正在创建一个新的活动,当用户单击任何项目时,是否可以简单地返回到主活动 MarkersList活动的代码: mainListView.setOnItemClickListener(new OnItemClickListener() { public void onIte

我的应用程序中有一个选项菜单,显示用户在地图上添加的所有标记的列表。标记使用ListView表示,当用户选择该ListView的一个项目时,我想返回(恢复?)到主活动,将标记位置作为参数传递,但不创建新活动。可能吗?现在我正在创建一个新的活动,当用户单击任何项目时,是否可以简单地返回到主活动

MarkersList活动的代码:

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");     
        }
    }