0

各位程序员,你好,我有这个代码

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() 方法中,所以当我运行应用程序时,我会在屏幕上看到我的列表。我不知道该怎么做,有人可以帮助我吗?

4

2 回答 2

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);
}
}

并阅读如何使用 ArrayList 中的数据填充 ListView

于 2013-04-24T19:30:11.630 回答
0

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

public class IdiomsCollection {

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

}

在我们的活动中

公共无效 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 提供一个布局。如果您想更好地控制如何在列表视图行中显示 Idioms 数据,您可以实现自定义适配器。在这里查看我的博客以了解 ArrayAdapter,您可以找到一个工作示例。如果您想创建自己的适配器也可以在我的博客上。

于 2013-04-24T20:04:29.943 回答