Android Listview issue ( Notifydatasetchanged())



也许这并不难,但我无法解决我的列表问题。我从列表中得到了一个Listview。

     @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 2) {
        String kpn = data.getStringExtra("kupeno");
        txtddtyKupeNo.setText(kpn);

    }
    if (resultCode == 3) {
        ArrayList<BuzagiKayitDBean> arraylist = data.getParcelableArrayListExtra("mylist");
        adapter = new BuzagiListAdapter(dty, BuzagiKayitActivity.this);
        for (BuzagiKayitDBean item : arraylist) {
            dty.add(item);
        }
        if (buzlist.getCount() > 0) {
            buzlist.setAdapter(adapter);
            adapter.notifyDataSetChanged();
        } else {
            buzlist.setAdapter(adapter);
        }
    }
}

listview没有任何变化?我做错了什么?tyvm。

编辑(像这样更改,仍然没有刷新。我在列表中有2个项目,但只显示1个)编辑2(升级了代码,但仍然无法工作)

首先,尽快初始化adapter,添加调用setAdapter();然后,当您准备好数据时,为您的适配器添加一种方法,就像appendList(List<T> list)一样,将数据附加到适配器中!

public void appendList(DailyStories dailyStories) {
    //todo addList()
    notifydatasetChanged();
}

我建议你用RecycleView来代替ListView,它更强大!!

您必须更改您的逻辑,因为如果每次输入这种代码的平静buzlist.getCount() > 0,您的adapter将是您没有初始化或设置适配器的null。或者,无论哪种方式,您都必须设置适配器,并且当您的列表为>0时。

最新更新