widget(4、spinner)

Spinner 是android下的一个下拉框控件,可以支持多级,通常定义如下:

<Spinner
     android:id="@+id/spinner1"
     android:layout_width="match_parent"
     android:layout_height="wrap_content" />

Spinner与ListView类似,都是采用适配器的方法关联数据,例如:

//定义一个数据
buffer = new ArrayList<String>();
buffer.add("条目1");
buffer.add("条目2");
buffer.add("条目3");

定义一个适配器,这里采用基本适配器,默认实现四个方法,如下:

复制代码
private BaseAdapter adapter = new BaseAdapter(){

    @Override
    public int getCount() {            
        return buffer.size();//数据大小
    }

    @Override
    public Object getItem(int arg0) {
        return buffer.get(arg0);//某一个位置的数据,对应一个item
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) { //绘制展示部分
        LinearLayout ll = new LinearLayout(MainActivity.this);
        ll.setOrientation(LinearLayout.HORIZONTAL);
        TextView tv     = new TextView(MainActivity.this);
        tv.setText(buffer.get(position));
        ll.addView(tv);
        return ll;
    }        
};
复制代码

之后配置适配器:

spinner.setAdapter(adapter);

在Spinner中有两个常用API:

  • 一个是某一个Item 被选中的事件
复制代码
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
    LinearLayout ll = (LinearLayout) arg1;
    TextView tv      = (TextView) ll.getChildAt(0);
    Toast toast = new Toast(MainActivity.this);
    toast = Toast.makeText(getApplicationContext(),
     tv.getText(), Toast.LENGTH_SHORT);
    toast.show();
}
复制代码

 

此处:arg0对应position,arg3对应id(即adapter里getItemId的值,而非视图ID)

  • 数据刷新时更新视图
buffer.add("条目4");
buffer.add("条目5");
adapter.notifyDataSetChanged();//触发更新视图控件

 

posted @   Fredric_2013  阅读(151)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示