android-正确重写SpinnerAdapter方法

问题描述

正确重写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) {

}

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

解决方案

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

解决方案二:

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

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

解决方案三:

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

时间: 2024-09-16 04:22:24

android-正确重写SpinnerAdapter方法的相关文章

java-关于android子类重写父类方法,方法体里面的方法的问题

问题描述 关于android子类重写父类方法,方法体里面的方法的问题 android中子类重写父类Activity方法,在onCreate这个方法的方法体里面有个setContentView方法,这个方法是调用外部方法吗,为什么前面没加this关键词,不是说方法的方法体里面调用外部方法要加this关键词,加了没加有什么区别 解决方案 不是调用外部方法,这是调用父类Activity中的方法 解决方案二: 子类重写父类的方法应注意的问题java 子类重写父类的方法应注意的问题java 子类重写父类的

Android编程重写ViewGroup实现卡片布局的方法_Android

本文实例讲述了Android编程重写ViewGroup实现卡片布局的方法.分享给大家供大家参考,具体如下: 实现效果如图: 实现思路 1. 重写onMeasure(int widthMeasureSpec, int heightMeasureSpec)设置每个子View的大小 2. 重写onLayout(boolean changed, int l, int t, int r, int b) 设置每个子View的位置 第一步:新建FlowLayout继承ViewGroup package com

java 继承 多态-请问下这段代码正确的原因,为什么父类可以调用抽象方法,执行的是子类重写的方法

问题描述 请问下这段代码正确的原因,为什么父类可以调用抽象方法,执行的是子类重写的方法 public class TestA { public static void main(String[] args) { TestA a = new TestA(); a.start(); } public void start(){ B b = new B(); b.funA(); } public abstract class A { public void funA(){ System.out.pri

android中为什么子类重写oncreate方法之后,方法体还要用super调用同名方法

问题描述 android中为什么子类重写oncreate方法之后,方法体还要用super调用同名方法 android中为什么子类重写oncreate方法之后,方法体还要用super调用同名方法 去掉之后会报错的 解决方案 调用父类中的方法,子类中实现差异化 解决方案二: 父类原本的方法里面包含了很多初始化以及准备的代码,你去掉了肯定会报错 解决方案三: 肯定的呀,你去看看源码就知道了

Android编程重写ViewGroup实现卡片布局的方法

本文实例讲述了Android编程重写ViewGroup实现卡片布局的方法.分享给大家供大家参考,具体如下: 实现效果如图: 实现思路 1. 重写onMeasure(int widthMeasureSpec, int heightMeasureSpec)设置每个子View的大小 2. 重写onLayout(boolean changed, int l, int t, int r, int b) 设置每个子View的位置 第一步:新建FlowLayout继承ViewGroup package com

继承ViewGroup重写onMeasure方法的详解

我们继承重写ViewGroup的目的是要做自定义控件,所以我们有必要先看一下安卓View的绘制过程: 首先当Activity获得焦点时,它将被要求绘制自己的布局,Android framework将会处理绘制过程,Activity只需提供它的布局的根节点. 绘制过程从布局的根节点开始,从根节点开始测量和绘制整个layout tree,绘画通过遍历整个树来完成,不可见的区域的View被放弃. 每一个ViewGroup 负责要求它的每一个孩子被绘制,每一个View负责绘制自己. 因为整个树是按顺序遍

Android实现屏幕旋转方法总结

  Android实现屏幕旋转方法总结         这篇文章主要介绍了Android实现屏幕旋转方法,实例总结了屏幕旋转的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例总结了Android实现屏幕旋转方法.分享给大家供大家参考.具体如下: 在介绍之前,我们需要先了解默认情况下android屏幕旋转的机制: 默认情况下,当用户手机的重力感应器打开后,旋转屏幕方向,会导致当前activity发生onDestroy-> onCreate,这样会重新构造当前activity和界面布局

android 通过重写ScrollView和Listview完成上下滑动选中不同位置标题的效果

    点击这里源码下载 看到了吗?就是这种效果:我再跟大家简单的叙述一下: 头部标题有三个:剧本梗概.剧本正文.剧本介绍. 当ScrollView滑到剧本中的无论哪一个内容标题的时候头部的大标题将被选中并呈现橙色:而三个标题内容下面是ListView的item,嵌在其父控件Scrollview中的. 下面让我们分析一下代码: 布局:activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk

Android界面刷新的方法分享_Android

Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用. Android程序中可以使用的界面刷新方法有两种,分别是利用Handler和利用postInvalidate()来实现在线程中刷新界面. 利用Handler刷新界面实例化一个Handler对象,并重写handleMessage方法调用invalidate()实现界面刷新:而在线程中通过sen