我使用SpinnerAdapter来显示一个Spinner.为此,我定义了一个实现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) {
}
Run Code Online (Sandbox Code Playgroud)
有人知道我必须在每种方法中编码吗?
Rof*_*ion 39
感谢您的回答,但我想与您分享我在搜索更多参考资料后使用的解决方案:
而只是在我的适配器中实现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;
}
}
Run Code Online (Sandbox Code Playgroud)
然后没有必要覆盖所有这些奇怪的方法,如isEmpty(),registerDataObserver()等.
如果有必要,仍然可以覆盖getDropDownView(...)
另外使用这个解决方案,可以调用adapter.notifyDatasetChanged(),如果适配器只实现SpinnerAdapter并且不扩展BaseAdapter,那就不那么容易了.
| 归档时间: |
|
| 查看次数: |
13774 次 |
| 最近记录: |