Android:如何将数据添加到空 ListView

标签 android

我的listView有问题,我用ArrayList存储数据,还有一个自定义的Adapter。但是,当我删除所有数据并再次添加一项时,它不会在此列表中显示任何内容。我的列表发生了什么变化,有人可以帮助我吗?

static ArrayList<String>  chattingListData=new ArrayList<String>(); 
static IconicAdapter chattingListDataAdapter;

@Override
public void onCreate(Bundle icicle) {

   super.onCreate(icicle);
   chattingListDataAdapter=new IconicAdapter(this);
   setListAdapter(chattingListDataAdapter);
   registerForContextMenu(this.getListView());

}

class IconicAdapter extends ArrayAdapter {

   Activity context;

   IconicAdapter(Activity context) {
      super(context, R.layout.chatting_list, chattingListData);       
      this.context=context;
   }

   public View getView(int position, View convertView, ViewGroup parent) {
      LayoutInflater inflater=context.getLayoutInflater();
      View row=inflater.inflate(R.layout.chatting_list, null);
      TextView label=(TextView)row.findViewById(R.id.chattinglist_userName);
      label.setText(chattingListData.get(position));  
      return(row);
   }
}

我使用静态 ArrayList 从外部修改数据,当我启动 ListView Activity 并添加数据时,没问题,但是当我删除所有数据时,我无法再添加到数据列表中。请帮助我。

最佳答案

I use static ArrayList to modify data from outside

不要那样做。

第 1 步:使用非静态 ArrayList数据成员作为你的基础ArrayAdapter .

第 2 步:在您的 Activity 中公开通过 add() 添加和删除项目的方法, insert() , 和 remove() ArrayAdapter 上的方法.通过使用这些方法,您的 ListView将在您进行更改时自动更新。

第 3 步:使用您在第 2 步中编写的方法修改 ListView 的内容, 由执行此操作的人执行(未显示在您的代码中)。

关于Android:如何将数据添加到空 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3183479/

相关文章:

android - 在 Android Espresso 中按下概览按钮

android - 如何启用移动到 SD 卡选项

java - 在 AsyncTask doInBackground 中创建 140,000 行 SQLite 数据库需要很多很多分钟

Android:获取设备应用程序列表 - 非常慢

android - canvas.toDataURL 不会产生图像/jpeg 数据

android - Oauth 2.0 Android 使用 Spring-For-Android

android - 如何以编程方式设置 EditText 布局边距?

android - 从android中的文件路径获取内容uri

android - Sqlite 全文搜索压缩

android - 在 Android Studio 中的所有模块的顶层构建文件中设置 proguard