将List添加到自定义适配器时出错 - Android

时间:2013-10-10 23:01:09

标签: android listview arraylist android-arrayadapter

我有一个类,它为List提供了4个参数。该类称为Item。我创建了一个ListList变量,它是一个ArrayList。然后我创建一个新的ListAdapter。我将此适配器设置为主ListView。然后我将10个输入添加到ArrayList中。这一切都有效,但是当我尝试将ArrayList项添加到ListAdapter时,给出了一个错误,即向该方法添加Cast。

以下是我所说的代码

 final List <Item> tempList = new ArrayList <Item>();

     mainListViewListAdapter = new ListAdapter(MainActivity.this, R.layout.main_list_item_layout, tempList);
      // set mainListAdapter
      mainListView.setAdapter(mainListViewListAdapter);

      for (int x = 0; x < 10;x++){
          tempList.add (new Item ("Example1","Example2","Example3","Example4"));
        }

       ***HERE IS WHERE I GET THE ERROR AT addAll();***
      mainListViewListAdapter.addAll(tempList);

mainListViewListAdapter设置为ListAdapter,mainListView设置为ListView。

为什么要向mainListViewListAdapter添加强制转换?我已经在另一个项目上运行了这个代码,我没有必要使用强制转换。

1 个答案:

答案 0 :(得分:0)

需要销毁适配器 - 使用并配置每次使用后 - 适配器和新适配器的新StringArray值。

使用这种结构:

    String[] values1 = new String[] { "Sunny", "Sealand", "Lengord" };

    makeListItem(values1);

    public void makeListItem(String[] addValues){

MySimpleArrayAdapter lvAdapter1 = new MySimpleArrayAdapter(this, addValues);

ListView1.setAdapter(lvAdapter1);   lvAdapter1 = null;  }