前言
发现很少有文章用这种方法,但这种方法非常简单,很适合小白,分享一下。
本代码实现下拉列表选择性别,并将性别传入数据库,不涉及修改spinner外观。
2022.10.11补充: 本方法适合做静态的下拉列表,也就是选项不做改动,如需动态变化还是建议用适配器
1.创建xml
在res/values/文件夹下创建xml文件,我这里命名为sex.xml,里面存放你需要在下拉列表里显示的选项,SexArray为这个列表的名称。代码如下
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="SexArray">
<item>男</item>
<item>女</item>
<item>保密</item>
</string-array>
</resources>
2.在布局文件中添加spinner控件
在activity的布局xml文件里添加spinner控件。这里我只放一下spinner的部分,重点在entries设置为第一步中创建的列表名,我这里设置的是SexArray
(注意这里先打出@后面就会出现提示,键入array并选择列表即可)
<Spinner
android:id="@+id/spn_sex"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/SexArray">
</Spinner>
这样设置的好处是不需要搞适配器(Adapter),之前看其他人的代码乱码七糟的适配器实在看的我头大
3.java代码中添加监听
直接看代码吧,放在onCreate方法里
有几个要注意的地方:
1.这里监听器的代码除了执行部分一定要一模一样,不然就会有报错
2.参数pos表示选中的列表中元素的下标,在我的表中元素0为“男”,元素1为“女”…
3.监听器中两个方法onItemSelected和onNothingSelected缺一不可
Spinner spinner_sex=findViewById(R.id.spn_sex);
spinner_sex.setSelection(0); //初始化,默认选择列表中第0个元素
spinner_sex.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
// TODO
if (pos==1){
input_p_sex="女";
}
else if(pos==2){
input_p_sex="保密";
}
else{
input_p_sex="男";
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO
}
});
有疑问的话可以问我,我尽量回复)