android下拉列表框Spinner

  展示下拉框的内容有两种方式,一是entries属性,写在xml文件当中,二是使用适配器。

-------entries属性实现--------
在values下new–>xml–>values xml files创建数组资源文件

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!--name== 是数组名字-->
    <string-array name="ctype">
        <item>全部</item>
        <item>电影</item>
        <item>娱乐</item>
        <item>吃喝玩乐</item>
    </string-array>
</resources>

<Spinner
   android:id="@+id/spinner"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
     android:entries="@array/ctype"
</Spinner>

----------适配器方式------------
.xml文件

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

activity函数


public class MainActivity extends AppCompatActivity {

    String[] ctype=new String[]{"全部","电影","娱乐","吃喝玩乐"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
;
        //构造适配器,选择三个参数的,(上下文环境,布局格式,数组)
        final ArrayAdapter<String > arrayAdapter=new ArrayAdapter<String>
                                (MainActivity.this,android.R.layout.simple_spinner_item,ctype);
        arrayAdapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
        Spinner spinner=findViewById(R.id.spinner);
        spinner.setAdapter(arrayAdapter);
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            /**
             *
             * @param adapterView 触发当前事件的spinner对象
             * @param view 表示当前选中的item
             * @param position 当前被选中的item的下标
             * @param id 表示当前被选择item的id
             */
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {
                String result1= ctype[position];//在数组中获得
                String result2=arrayAdapter.getItem(position);//在适配器获取
                String result3=adapterView.getItemAtPosition(position).toString();//从spinner获取
                Toast.makeText(MainActivity.this,"result1"+result1+"result2"+result2+"result3"+result3,Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {

            }
        });
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值