Code Bye

新手关于ListView simpleadapter 只显示一条数据的问题

设想是有第一个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);
引用 1 楼 u013377714 的回复:

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();把每次数据清理了一下那肯定只能有一条数据了啊。。
引用 3 楼 u013377714 的回复:

我靠你这逻辑,把 List<Map<String,Object>> dongxi= new ArrayList<Map<String,Object>>();放到全局变量中,不要每次添加都new一个,你还用adapter.notifyDataSetChanged();把每次数据清理了一下那肯定只能有一条数据了啊。。

哈哈对啊。。。谢谢了

你好,请问您是怎么解决的了?

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明新手关于ListView simpleadapter 只显示一条数据的问题