Android 中使用spinner实现下拉列表的两种方法和getItemAtPosition()方法的使用

Posted 路宇_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 中使用spinner实现下拉列表的两种方法和getItemAtPosition()方法的使用相关的知识,希望对你有一定的参考价值。

方法一:

通过entries属性,指定列表项
1.main.xml文件代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".SpinnerActivity"
    android:orientation="horizontal"
    >
    <TextView
        android:layout_width="150dp"
        android:layout_height="50dp"
        android:text="附近区域:"
        android:textSize="25sp"
        android:gravity="right|center"
        />
    <Spinner
        android:layout_width="0dp"
        android:layout_height="50dp"
        android:layout_weight="1"
        android:id="@+id/spinner_location"
        android:entries="@array/spinner"
        />
</LinearLayout>

2.资源文件@array/spinner 需要在values文件下面创建,具体代码如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="spinner">
        <item>全部</item>
        <item>上海</item>
        <item>天津</item>
        <item>深圳</item>
    </string-array>
</resources>

效果如下:
在这里插入图片描述
方法二:

使用数组适配器ArrayAdapter,展现列表项

public class SpinnerActivity extends AppCompatActivity {

    private Spinner spinner_location;
    private ArrayAdapter arrayAdapter;
    //定义字符串数组,指定数组的元素
    private String[] spinner = new String[]{"全部","上海","深圳","北京"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_spinner);

        spinner_location=findViewById(R.id.spinner_location);

        //参数1.上下文对象 参数2.列表项的样式,Android为我们提供的资源样式为:android.R.layout.simple_spinner_item
        //参数3.定义的字符串数组
        arrayAdapter=new ArrayAdapter(this, android.R.layout.simple_spinner_item,spinner);
        //设置适配器列表框下拉时的列表样式
        arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        //将适配器与下拉列表框关联起来
        spinner_location.setAdapter(arrayAdapter);
        String s = spinner_location.getSelectedItem().toString();
        Toast.makeText(this, s, Toast.LENGTH_SHORT).show();
    }
}

效果同上。
获取选中项的值,通过调用选择列表项监听器setOnItemSelectedListener
使用其中的getItemAtPosition 获取选中的值

spinner_location.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                String result = parent.getItemAtPosition(position).toString();
                Toast.makeText(SpinnerActivity.this, result, Toast.LENGTH_SHORT).show();
            }

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

            }
        });

效果如下:
在这里插入图片描述
Spinner中常用的属性:

【	常 用 属 性	】
1.	    android:entries="@array/menu_type"	//	绑定XML文件找那个的数据源
2.		android:spinnerMode="dropdown"		//	显示模式 
		"dropdown"	直接下拉模式
		"dialog"	对话框效果模式
4.	    android:dropDownWidth="250dp"		//	下拉框宽度

以上是关于Android 中使用spinner实现下拉列表的两种方法和getItemAtPosition()方法的使用的主要内容,如果未能解决你的问题,请参考以下文章

Android 中使用spinner实现下拉列表的两种方法和getItemAtPosition()方法的使用

下拉列表 Spinner

Android 中使用spinner实现下拉列表的两种方法和getItemAtPosition()方法的使用

Android开发系列(二十一):Spinner的功能和使用方法以及实现列表选择框

android 下拉列表

Android中的下拉列表