如何使用ArrayList设置ListView的内容

时间:2013-04-24 19:01:30

标签: android listview arraylist

Hello其他程序员,我有这段代码

public class IdiomsCollection {

private ArrayList<Idiom> idiomsList = new ArrayList<Idiom>();

public IdiomsCollection() {
    loadIdioms();
}

private void loadIdioms() {

    //creating new items in the list
    Idiom i1 = new Idiom();
    i1.setPhrase("Piece of cake");
    i1.setMeaning("When something is easy to do");
    i1.setUsage("That test that I took was a piece of cake");
    idiomsList.add(i1);
}
}

我想将我的ArrayList的内容添加到另一个类的onCreate()方法中,所以当我运行应用程序时,我会在屏幕上看到我的列表。我不知道怎么做,有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

利用继承。 这是像这样的创建类

public class IdiomsCollection extends ArrayList<Idiom> {


public IdiomsCollection() {
    loadIdioms();
}

private void loadIdioms() {

    //creating new items in the list
    Idiom i1 = new Idiom();
    i1.setPhrase("Piece of cake");
    i1.setMeaning("When something is easy to do");
    i1.setUsage("That test that I took was a piece of cake");
    this.add(i1);
}
}

阅读how to populate ListView with data from ArrayList

答案 1 :(得分:0)

我建议您使用ArrayAdapter,如果您没有特殊需求,可以在ListView中为行使用标准布局。代码或多或少看起来像:

public class IdiomsCollection {

.....
  public List<Idioms> getIdiomsList() {
     return idiomsList;
  }

}

在我们的活动中

public void onCreate(..){

 ListView lv = (ListView) findViewById(R.id.listView);
 List<Idiom> idiomList = ( new IdiomsCollection()).getIdiomsList();
  final ArrayAdapter<Idiom> aAdpt =
        new ArrayAdapter<Idiom>(this,                 
               android.R.layout.simple_list_item_1, idiomListList);

  lv.setAdapter(aAdpt);  

}

为IdiomClass提供toString方法,并为Activity提供布局。 如果您想要更多地控制如何在listview行中显示Idioms数据,您可以实现自定义适配器。 看看我的博客here对于ArrayAdapter你可以找到一个有用的例子。还有我的博客here,以防您想要创建自己的适配器。