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()方法的使用
Android 中使用spinner实现下拉列表的两种方法和getItemAtPosition()方法的使用