当前位置: 代码迷 >> Android >> 安卓listview的notifyDataSetChanged无效有关问题
  详细解决方案

安卓listview的notifyDataSetChanged无效有关问题

热度:86   发布时间:2016-04-28 01:37:45.0
安卓listview的notifyDataSetChanged无效问题
各位大侠你们好
小弟刚接触安卓两天
在使用listview做一个简单的通讯录时,想动态添加item,但从mainactivity跳转到另一个activity时再跳回来时,listview却无法显示我添加的item 按网上说的notifyDataSetChanged也不行
小弟愚笨 望各位指点迷境


简陋的源码
public class MainActivity extends Activity implements View.OnClickListener {
    private SimpleAdapter simpleAdapter;
    private ArrayList<HashMap<String,String>> arrayList=new ArrayList<HashMap<String, String>>();
    private ListView listView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button=(Button)findViewById(R.id.add);
        button.setOnClickListener(this);
        listView=(ListView)findViewById(R.id.listView);
        HashMap<String,String> map=new HashMap<String,String>();
        map.put("name","fuck");
        map.put("numble","shit");
        arrayList.add(map);
        simpleAdapter=new SimpleAdapter(this,arrayList,R.layout.item,new String[]{"name","numble"},new int[]{R.id.textView2,R.id.textView3});
        listView.setAdapter(simpleAdapter);

    }

    @Override
    protected void onResume() {
        super.onResume();
        HashMap<String,String> map=new HashMap<String,String>();
        map.put("title","fuck");
        map.put("jj","shit");
        arrayList.add(map);

        simpleAdapter.notifyDataSetChanged();
    }

    @Override
    public void onClick(View v) {

        Intent intent=new Intent(MainActivity.this,Tiaozhuan.class);
        startActivity(intent);
        MainActivity.this.finish();
    }
}
------解决思路----------------------
final Intent intent=new Intent(Tiaozhuan.this,MainActivity.class);
        back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(intent);
                Tiaozhuan.this.finish();
            }
        });

这个是你跳转的Activity的逻辑

是重新new了一个MainActivity的 

你想跳转的那个Activity带回数据到Mainactivity 用startActivityForResult

重写onActivityResult  更新ListView
  相关解决方案