Spinner

Spinner列表理解
ArrayAdapter 适配器是用于列表填充数据的 final 变,变量为常量,一经赋值永不改变。和静态变量有点像
借鉴:https://blog.csdn.net/nkdwslsd/article/details/52336212
一、构造函数
1、布局中一个TextView: 直接在上下文后接布局就行 如下:三个参数
arrayAdapter=new ArrayAdapter(Adapter_Activity.this,
android.R.layout.simple_spinner_item,
Colors);
// 数据:final String []Colors=new String[]{“红色”, “黄色”, “紫色”, “白色”, “黑色”, “蓝色”};

2、布局中有多个TextView:需在上下文后接布局文件,之后在布局文件后接你指定那个TextView的ID来显示你选项 如下:四个参数
arrayAdapter=new ArrayAdapter(Adapter_Activity.this,
android.R.layout.simple_spinner_item,
R.id.tv
Colors);

 注意: 应该可以是其他布局,条件是该布局中必须有TextView,如果是多个要指定使用的TextView ID。		这里的布局文件是给单个的(Item)TextView的布局。

3、设置下拉列表的布局:为单个列表项设置布局之后,还要给下拉列表设置布局才算是一个Spinner列表的创建成功。
列表项的布局:每个选项的式样
arrayAdapter;//适配器是用于列表填充数据的 final 变 变量为常量,一经赋值永不改变。和静态变量有点像
//创建一个数组适配器
final ArrayAdapter arrayAdapter=new ArrayAdapter
(Adapter_Activity.this,android.R.layout.simple_spinner_item,Colors);
//下拉列表的布局:全部列表项的布局
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item );
//已经绑定数据了的适配器和列表关联
dynamic_spinner.setAdapter(arrayAdapter); //一个列表创建完成
4、注册监视器:每个列表使用的监视器是不同的 ,Spinner只能注册
.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() …);
有两个方法
// 列表项被选中
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
//如果arrayAdapter不是final 也不是static 那么他的值是可以随意变化的 定义成局部变量不会消失的吗?
Log.i(TAG,“选中:”+arrayAdapter.getItem(position));
}
//列表项未被选中
public void onNothingSelected(AdapterView<?> parent) {
//如果数据源清空后,调用适配器的刷新方法时执行此方法。
Log.i(TAG,“未选中”);
}

二、代码展示

private void init() { //自定义初始化方法
return_MainActivity=findViewById(R.id.return_mainActivity);

static_spinner=findViewById(R.id.static_spinner);
dynamic_spinner=findViewById(R.id.dynamic_spinner);

/*应该可以是其他布局条件是该布局中必须有TextView:
 1、布局中一个TextView: 直接在上下文后接布局就行   如下:三个参数
 arrayAdapter=new ArrayAdapter<String>(Adapter_Activity.this,
 android.R.layout.simple_spinner_item,
 Colors);
 2、布局中有多个TextView:需在上下文后接布局文件,之后在布局文件后接你指定那个TextView的ID来显示你选项 如下:四个参数
 arrayAdapter=new ArrayAdapter<String>(Adapter_Activity.this,
 android.R.layout.simple_spinner_item,
 R.id.tv,
 Colors);
*/
//列表项的布局:每个选项的式样

// arrayAdapter;//适配器是用于列表填充数据的 final 变 变量为常量,一经赋值永不改变。和静态变量有点像
final ArrayAdapter arrayAdapter=new ArrayAdapter
(Adapter_Activity.this,android.R.layout.simple_spinner_item,Colors);

//下拉列表的布局:全部列表项的布局
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item );
//已经绑定数据了的适配器和列表关联
dynamic_spinner.setAdapter(arrayAdapter);

//不同的列表允许注册的监视器是不用的spinner只能注册这个监视器
dynamic_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        //如果arrayAdapter不是final 也不是static 那么他的值是可以随意变化的  定义成局部变量不会消失的吗?
        Log.i(TAG,"选中:"+arrayAdapter.getItem(position));
    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {
        //如果数据源清空后,调用适配器的刷新方法时执行此方法。
        Log.i(TAG,"未选中");
    }
});
return_MainActivity.setOnClickListener(this);

}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值