设想是有第一个activity点添加打开第二个activity,输入信息后确定返回第一个activity并在listview中显示,但是不知道为什么只能显示一条数据,再添加就会覆盖掉。 第一个activity: package com.test; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.TextView; public class TestActivity extends Activity { public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); Button add=(Button)findViewById(R.id.button1); add.setOnClickListener(new OnClickListener(){ public void onClick(View V) { Intent intent=new Intent(TestActivity.this,TestActivity1.class); startActivityForResult(intent,1); } }); } public void onActivityResult(int requestCode,int resultCode,Intent data){ ListView listview=(ListView) this.findViewById(R.id.listview); //String result=data.getExtras().getString("result"); Intent intent=getIntent(); //Bundle bundle=intent.getExtras(); List<Map<String,Object>> dongxi= new ArrayList<Map<String,Object>>(); SimpleAdapter adapter=new SimpleAdapter(this,dongxi,R.layout.item,new String[]{"name","adress","phone"},new int[]{R.id.name,R.id.address,R.id.phone}); Map<String, Object> item= new HashMap<String,Object>(); item.put("name",data.getExtras().getString("name")); item.put("adress",data.getExtras().getString("address")); item.put("phone",data.getExtras().getString("phone")); adapter.notifyDataSetChanged(); dongxi.add(item); listview.setAdapter(adapter); } } 第二个activity: package com.test; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; public class TestActivity1 extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main1); Button cancel=(Button)findViewById(R.id.no); cancel.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { finish(); } }); Button sure=(Button)findViewById(R.id.yes); sure.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { String name=((EditText)findViewById(R.id.name)).getText().toString(); String address=((EditText)findViewById(R.id.address)).getText().toString(); String phone=((EditText)findViewById(R.id.phone)).getText().toString(); Intent intent=new Intent(); intent.putExtra("name",name); intent.putExtra("address",address); intent.putExtra("phone",phone); TestActivity1.this.setResult(2,intent); TestActivity1.this.finish(); } }); } } 结果: 初学者求解。 |
|
在listview.setadapter前面,加一句adapter.additems(dongxi);
|
|
他说 The method additems(List<Map<String,Object>>) is undefined for the type SimpleAdapter呢。 |
|
20分 |
我靠你这逻辑,把 List<Map<String,Object>> dongxi= new ArrayList<Map<String,Object>>();放到全局变量中,不要每次添加都new一个,你还用adapter.notifyDataSetChanged();把每次数据清理了一下那肯定只能有一条数据了啊。。
|
哈哈对啊。。。谢谢了 |
|
你好,请问您是怎么解决的了?
|