gpt4 book ai didi

android - 在 "Adapter"上用于两个(或更多)父 View ?

转载 作者:行者123 更新时间:2023-11-30 04:24:42 24 4
gpt4 key购买 nike

是否可以使用一个适配器类(及其实例)(例如 ArrayAdapter<ownDataType> 的自己的子类用于两个(或更多)不同的 View ?

在我的 Activity , 我有两个 Spinner用于显示(和选择)相关数据的对象:父类别列表和所选父类别的子类别列表。当然,子类中的列表- Spinner当父类别更改时更新(设置新的 ArrayAdapter )。但是,我也希望能够在创建 Activity 时直接设置子类别(并自动选择父类别)。这让事情变得复杂。

我现在想要一个简单干净的解决方案的想法是创建一个自己的适配器类(例如派生自 ArrayAdapter<CategoryPair> ,其中 CategoryPair 是一个包含一对父类和子类的简单类)和这个自己的适配器类处理所有逻辑以保持数据一致(那里更简单)。

getView(int position, View convertView, ViewGroup parent) Adapter 的方法-class 我需要可靠地识别这两个 Spinner 中的哪一个 |我的 Activity 中的对象我需要创建一个 View 。

我可以依赖parent吗?参数?

你觉得我的想法好吗?

编辑:代码示例:

我的适配器类:

public class CategoryPair
{
Category parent;
Category sub;
}

public class CategoriesAdapter extends ArrayAdapter<CategoryPair> {
private Spinner parentSpinner;
private Spinner subSpinner;
public CategoriesAdapter(Context context, int textViewResourceId, Spinner par, Spinner sub) {
super(context, textViewResourceId);
parentSpinner = par;
subSpinner = sub;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (parent == parentSpinner)
{
//
}
else if (parent == subSpinner)
{
//
}
else
{
Log.e(TAG, "Invalid parent in CategoriesAdapter");
}
return super.getView(position, convertView, parent);
}

最佳答案

是的,没关系。每个 View 都应该使用适配器的不同实例(确保这一点),因此,除非您的适配器代码有问题并且使用静态变量,否则一切都应该正常工作。

关于android - 在 "Adapter"上用于两个(或更多)父 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8696275/

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