gpt4 book ai didi

android - notifyDataSetChanged() 不适合我

转载 作者:行者123 更新时间:2023-11-29 22:04:23 26 4
gpt4 key购买 nike

我有一个 ListView ,它使用不同类中的基本适配器显示来 self 的数据库的多个数据。每次我删除或添加一个项目到我的数据库时,我都想刷新我的 ListView 。

这是我的代码,但它没有刷新我的 ListView 。请帮我把 notifyDataSetChanged() 放在哪里。

BaseAdapter ad = ((orderadapter)list.getAdapter());
ad.notifyDataSetChanged();

谢谢。

最佳答案

首先我将 adapter 定义为一个全局变量:

       public ListAdapter adapter = null;

现在我在 onCreate() 方法中初始化我的 ListView (我必须在其中放置项目)。此 ListView 的布局在 xml 文件中定义:

       listView = (ListView)findViewById(R.id.myList);

现在我得到所有要显示在数组列表中的值,然后用这个数组列表初始化适配器(您也可以使用任何其他数据存储技术):

       adapter = new ListAdapter(availableMessageNotifications,MessageNotificationActivity.this);
listView.setAdapter(adapter);
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

然后我在列表的每个项目上设置 onItemClickListener:

      OnItemClickListener listener = new OnItemClickListener (){
@Override
public void onItemClick(AdapterView<?> adapter, View view, int position,long id) {
//your code for an item clicked.
}
listView.setOnItemClickListener (listener);

希望对您有所帮助。

您应该从 UI 线程调用 notifyDataSetChanged() :

       yourList.remove(position);
runOnUiThread(new Runnable() {
public void run() {
yourAdapter.notifyDataSetChanged();
}
});

关于android - notifyDataSetChanged() 不适合我,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11151930/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com