为什么返回之后上一项会被覆盖?这是主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有几个很好用的方法。再多研究下吧。
