Baby_Bonnie
Baby_Bonnie
采纳率96.4%
2012-10-29 02:59

正确重写SpinnerAdapter方法

已采纳

我使用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) {

}

大家知道在这些方法中我要加什么代码呢?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • clcurie_11 clcurie_11 9年前

    在Adapter中实现SpinnerAdapter,继承BaseAdapter类

    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(...)方法。

    点赞 评论 复制链接分享
  • ueryueryuery 李狗蛋52635 9年前

    主要重写负责生成view的两个方法:
    getDropDownView() //返回下拉列表项
    getView() //返回选中项

    其它的都是一些次要的方法,如:registerDataSetObserver()是注册一个对下拉内容数据的observer,有兴趣可以去查下API看。

    点赞 1 评论 复制链接分享
  • hxn_217 hxn_217 9年前

    如果Adapter只是实现SpinnerAdapter,而不继承BaseAdapter时,可以调用adapter.notifyDatasetChanged()。

    点赞 评论 复制链接分享

相关推荐