gpt4 book ai didi

android - 为什么我们在 android 中每个类使用单个适配器?

转载 作者:行者123 更新时间:2023-11-30 02:02:45 25 4
gpt4 key购买 nike

我刚刚开始使用 Big Nerd Ranch Guide 学习 android。在一个项目中,我们要实现一个 listView 并使用 ArrayAdapter 从数组中获取数据,因为犯罪对象存储在某个列表中。

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getActivity().setTitle(R.string.crimes_title);
mCrimes = CrimeLab.get(getActivity()).getCrimes();
ArrayAdapter<Crime> adapter =
new ArrayAdapter<Crime>(getActivity(),
android.R.layout.simple_list_item_1,
mCrimes);
setListAdapter(adapter);
}

之后,我们要创建自定义列表来显示标题以及复选框和日期,因此我们创建了一个自定义布局。现在,我们为此使用了不同的适配器。

private class CrimeAdapter extends ArrayAdapter<Crime> {
public CrimeAdapter(ArrayList<Crime> crimes) {
super(getActivity(), 0, crimes);
}

我的问题是为什么我们不能使用我们之前使用的相同适配器?我的意思是我们可以给它新的值或创建一个新的对象。我在互联网上搜索并发现我们可以创建 multiple adapters with some restrictions . 为什么我们将它扩展到 ArrayAdapter?我们不能像以前那样通过创建适配器来做吗?请详细解释,因为我才刚刚开始。

谢谢。

最佳答案

让我们先谈谈 android 中的 ListView 适配器实现,首先在您的第一个示例中,您使用了 android 中 listview 适配器的默认实现,它为您提供了文本 ListView

但大多数情况下,这对于您的用户界面来说还不够,您希望像第二个示例中那样添加一个图像复选框,因此 android 操作系统使您能够制作自己的自定义单元格(列表中的每一行),这就是为什么你会发现自己需要扩展数组适配器

在您使用的第一个示例中

android.R.layout.simple_list_item_1

这是一个只包含textview的布局

并且你提供了一个数据源 mCrimes

所以当你扩展数组适配器时,你做同样的事情,你提供你自己的布局,它代表单元格和将填充你的列表的数据源

希望为您澄清并欢迎加入:)

关于android - 为什么我们在 android 中每个类使用单个适配器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31228181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com