为什么返回之后上一项会被覆盖?解决方案

为什么返回之后上一项会被覆盖?这是主Activity,菜单栏里有a添加选项,点击后会转到addActivityJava codepac

为什么返回之后上一项会被覆盖?
这是主Activity,菜单栏里有a添加选项,点击后会转到addActivity

Java code
package com.itcast;import java.util.ArrayList;import java.util.HashMap;import android.app.Activity;import android.app.ListActivity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.ListView;import android.widget.SimpleAdapter;public class Activity08Activity extends ListActivity{    /** Called when the activity is first created. */    ArrayList<HashMap<String,String>> list=null;     SimpleAdapter listAdapter=null;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        list=new ArrayList<HashMap<String,String>>();        HashMap<String,String> map1=new HashMap<String,String>();        HashMap<String,String> map2=new HashMap<String,String>();        HashMap<String,String> map3=new HashMap<String,String>();        map1.put("user_name", "张三");        map1.put("user_ip", "127.0.0.1");        map2.put("user_name", "赵四");        map2.put("user_ip", "196.20.2.1");        map3.put("user_name", "王五");        map3.put("user_ip", "127.4.3.12");        list.add(map1);        list.add(map2);        list.add(map3);        //this是该activity,list是HashMap        listAdapter=new SimpleAdapter(this,list,R.layout.user,new String[]{"user_name","user_ip"},new int[]{R.id.user_name,R.id.user_ip});        setListAdapter(listAdapter);            }    @Override    protected void onStart() {        // TODO Auto-generated method stub        System.out.println("start");        super.onStart();        Intent intent=getIntent();        String name=intent.getStringExtra("name");        String ip=intent.getStringExtra("ip");        HashMap<String,String> map4=new HashMap<String,String>();        map4.put("user_name", name);        map4.put("user_ip", ip);        list.add(map4);            }        public boolean onCreateOptionsMenu(Menu menu) {        // TODO Auto-generated method stub        menu.add(0, 1, 1,R.string.add);        menu.add(0, 2, 2,R.string.delete);        menu.add(0, 3, 3,R.string.quit);        return super.onCreateOptionsMenu(menu);            }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        // TODO Auto-generated method stub        if(item.getItemId()==1){            Intent intent=new Intent();            intent.setClass(Activity08Activity.this,addActivity.class);            Activity08Activity.this.startActivity(intent);                    }        else if(item.getItemId()==2){            finish();        }        else{                    }        return super.onOptionsItemSelected(item);    }    @Override    protected void onListItemClick(ListView l, View v, int position, long id) {        // TODO Auto-generated method stub        super.onListItemClick(l, v, position, id);        System.out.println("id-------------"+id);        System.out.println("position-------------"+position);    }}

这是addActivity的代码
Java code
package com.itcast;import android.app.Activity;import android.content.Intent;import android.location.GpsStatus.Listener;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.*;public class addActivity extends Activity{    private EditText edtext1=null;    private EditText edtext2=null;    private Button ok=null;    private Button cancel=null;    private String name=null;    private String ip=null;    @Override    protected void onCreate(Bundle savedInstanceState) {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.add);        edtext1=(EditText)findViewById(R.id.addname);        edtext2=(EditText)findViewById(R.id.addIP);        ok=(Button)findViewById(R.id.button1);        cancel=(Button)findViewById(R.id.button2);        ok.setOnClickListener(new ButtonListeners());        cancel.setOnClickListener(new ButtonListeners2());            }    class ButtonListeners implements OnClickListener{        public void onClick(View v) {            // TODO Auto-generated method stub            name=edtext1.getText().toString();            ip=edtext2.getText().toString();            Intent intent=new Intent();            intent.putExtra("name",name);            intent.putExtra("ip", ip);            intent.setClass(addActivity.this,Activity08Activity.class);            addActivity.this.startActivity(intent);            finish();        }    }    class ButtonListeners2 implements OnClickListener{        public void onClick(View v) {            // TODO Auto-generated method stub            finish();        }    }} 


我是想每一次添加后都会在主activity的列表上添加一项,但是第一次能够添加,进行第二次添加的时候,发现上一次添加的项目没有了,我在OnStart()中写的添加代码,我觉得每一次回到主Activity时候都会调用Onstart()函数,可视结果和我预想的不一样,看了半天也不知道哪里出问题了,求高手帮忙。。

[解决办法]
你这个情况应该适合startActivityForResult方式打开addactivity,然后再addactivity中通过setResult返回结果。
[解决办法]
当然没有了,你相当于重新打开一个第一个Activity,以前的数据当然不会保存。同意楼上方法。另为listview有几个很好用的方法。再多研究下吧。
[解决办法]
当然没有了,你相当于重新打开一个第一个Activity,以前的数据当然不会保存。同意楼上方法。另为listview有几个很好用的方法。再多研究下吧。