【问题标题】:Filling an ArrayList in Android Studio, best way (Beginner level)?在 Android Studio 中填充 ArrayList,最好的方法(初级)?
【发布时间】:2023-04-09 14:53:01
【问题描述】:

我是 Android Studio 甚至 java 的超级新手,所以我有一些基本问题。 我想用关于动物的数据填充 ListView。

最好的方法是什么? 例如,我有一个包含价格标签的猫和狗类(两者都是不同的奖品)。现在我想在我的 ListView 中显示 cat 和 dog 以及它们各自的奖品。

如何正确设置?我不确定如何在 ArrayList 中获取该信息,因此可以将其传输到 ListView。

希望你们能在那里支持我一点。谢谢你:)

【问题讨论】:

  • 谢谢,我可以看到如何在那里添加信息。我可以把 c​​atprize 和 dogprize 放在那里。 Listview 怎么知道哪些信息属于什么动物呢?
  • 就像一个普通的多维数组。动物[0][10]和动物[1][20]?或类似的东西。 arrayadapter 或 listview 如何知道哪些信息属于哪里。那是我真正没有得到的:/
  • 你必须创建一个自定义适配器,看看:vogella.com/tutorials/AndroidListView/article.html
  • 谢谢camelCaseCoder,我会尝试用这个=D我想我得到了正确的对象类,猫和狗是动物的孩子,我想这是我还没有得到的arrayList .谢谢你们。

标签: java android listview arraylist


【解决方案1】:
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // initial the arraylist
        List<Animal> animals = new ArrayList<Animal>() {{
            add(new Dog());
            add(new Cat());
        }};
        // get a list view
        ListView listView = (ListView) findViewById(R.id.list_view);
        listView.setAdapter(new MyAdapter(animals));
    }

    // this is your custom adapter
    static class MyAdapter<Animal> extends BaseAdapter {

        private List<Animal> animalList;

        public MyAdapter(List<Animal> animalList) {
            this.animalList = animalList;
        }

        @Override
        public int getCount() {
            return animalList.size();
        }

        @Override
        public Animal getItem(int position) {
            return animalList.get(position);
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            Animal animal = getItem(position);
            if(animal instanceof Dog){
                // do dog things
            }else if(animal instanceof Cat){
                // do cat things
            }
            // you might want inflate your custom item view at here
            return null;
        }
    }

    static interface Animal {
        // customize your interface as you wish
    }

    static class Cat implements Animal {

    }

    static class Dog implements Animal {

    }
}

【讨论】:

  • Vielen lieben Dank für dieses Beispiel!! Das hat mir sehr geholfen, für das Verständnis, der Link von oben ebenso。 Ich glaub ich habs verstanden :) Hat super funktioniert!
猜你喜欢
  • 2012-02-01
  • 1970-01-01
  • 2018-05-31
  • 2017-12-07
  • 2021-05-12
  • 2018-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多