是否可以使用一个适配器类(及其实例)(例如,对于两个(或更多)不同的视图,使用ArrayAdapter<ownDataType>
的自己的子类?
在我的Activity
中,我有两个用于显示(和选择)相关数据的Spinner
个对象:父类别列表和所选父类别的子类别列表。当然,当更改父类别时,子类别中的列表 - Spinner
会更新(设置新的ArrayAdapter
)。但是,我还希望能够在创建活动时直接设置子类别(并自动选择父类别)。这使事情变得复杂。
我现在想要一个简单而干净的解决方案是创建一个自己的Adapter-Class(例如派生自ArrayAdapter<CategoryPair>
,其中CategoryPair
是一个简单的类,它拥有一对父级和子级这个自己的适配器类处理所有逻辑以保持数据一致(在那里更简单)。
在getView(int position, View convertView, ViewGroup parent)
- 类的Adapter
方法中,我需要可靠地识别我的活动中的两个Spinner
对象中的哪一个,我需要创建一个视图。
我可以依赖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);
}
答案 0 :(得分:1)