我正在使用SpinnerAdapter来显示微调框。为此,我定义了一个实现SpinnerAdapter的类。不幸的是,我不知道如何重写SpinnerAdapter的某些方法:
@Override
public View getDropDownView(int position, View arg1, ViewGroup arg2) {
}
@Override
public int getItemViewType(int arg0) {
}
@Override
public boolean hasStableIds() {
}
@Override
public void registerDataSetObserver(DataSetObserver arg0) {
}
@Override
public void unregisterDataSetObserver(DataSetObserver observer) {
}
有人知道我必须在每种方法中编写什么代码吗?
最佳答案
感谢您的回答,但尽管如此,我还是想与您分享在搜索更多引用文献后使用的解决方案:
取而代之的是,仅在我的适配器中实现SpinnerAdapter,而是扩展BaseAdapter并实现SpinnerAdapter:
private class ListAdapter extends BaseAdapter implements SpinnerAdapter {
@Override
public int getCount() {
return allLists.size();
}
@Override
public Object getItem(int position) {
return allLists.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View view, ViewGroup parent) {
TextView text = new TextView(lexs);
text.setText(allLists.get(position).getName());
return text;
}
}
然后,不必重写所有这些奇怪的方法,例如isEmpty(),registerDataObserver()等。
而且如果有必要,仍然可以重写getDropDownView(...)
另外,使用此解决方案,可以调用adapter.notifyDatasetChanged(),如果适配器仅实现SpinnerAdapter而不扩展BaseAdapter则不那么容易。
关于android - 如何正确覆盖SpinnerAdapter的方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3072147/