|
设想是有第一个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();把每次数据清理了一下那肯定只能有一条数据了啊。。
|
|
哈哈对啊。。。谢谢了 |
|
|
你好,请问您是怎么解决的了?
|
|