Android Activity跳转时更新Listview

想要实现的功能:每次从第二个Activity跳转回这个Activity的时候,更新这个Activity的listview。
出现的问题:在第二个Activity点击返回键的时候黑屏

关键代码如下:

@Override
    protected void onStart() {
        super.onStart();
        for (int i = 0; i < listitem.size(); i++) {
            HashMap map = listitem.get(i);
            String num = "" + (i + 1);
            if (rfidNum != null && map.get(rfidNum) != null) {
                List list = reFreshDataMap.get(rfidNum);
                String QR_Code = (String) list.get(i);
                map.put("list_qrcode"+num, QR_Code);
            }
            listitem.add(map);
        }
        listItemAdapter.notifyDataSetChanged();
    }
求解答求讨论,谢谢!!!

补充代码如下


listitem = new ArrayList<>();

        listItemAdapter = new SimpleAdapter(this,
                listitem,
                R.layout.qcode_list,
                new String[]{"list_rfid", "list_button",
                        "list_qrcode1", "list_qrcode2", "list_qrcode3",
                        "list_qrcode4", "list_qrcode5"},
                new int[]{R.id.qcode_list_tv, R.id.qcode_list_bt,
                        R.id.qcode_tv_1, R.id.qcode_tv_2, R.id.qcode_tv_3,
                        R.id.qcode_tv_4, R.id.qcode_tv_5}) {

你跳转的时候不能 startActivityForResult(intent, 0);吗?然后在onActivityResult里面进行操作

for (int i = 0; i < listitem.size(); i++) {
HashMap map = listitem.get(i);
String num = "" + (i + 1);
if (rfidNum != null && map.get(rfidNum) != null) {
List list = reFreshDataMap.get(rfidNum);
String QR_Code = (String) list.get(i);
map.put("list_qrcode"+num, QR_Code);
}
你这一些循环是不是有问题啊

学学调试吧,新手最欠缺的。代码这么简单,会调试的话,很快就能解决

为什么要把数据加载写在onStart方法里面呢。如果第二个界面里没有对集合里面的数据进行处理的话,还是写在onCreate方法里面比较好,不会在返回的时候重复添加数据