如何正确覆盖SpinnerAdapter的方法

Rof*_*ion 17 android

我使用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,那就不那么容易了.

  • 什么是所有列表,你在哪里得到它或创建它? (2认同)