android Spinner点击事件处理
16lz
2021-01-23
使用Spinner处理item的点击事件出现的错误
代码:
spinner.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { //获取spinner选中的文本 String cardNumber = Main2Activity.this.getResources().getStringArray(R.array.spinner_main_arr)[position]; Toast.makeText(Main2Activity.this, "" + cardNumber, Toast.LENGTH_SHORT).show(); } });
spinner的配置数据:在values文件下建立一个文件,自定义名称并写上下面代码
<?xml version="1.0" encoding="utf-8"?><resources> <string-array name="spinner_main_arr"> <item>AAAA</item> <item>BBBB</item> </string-array></resources>
运行程序出现以下的错误
Caused by: java.lang.RuntimeException: setOnItemClickListener cannot be used with a spinner. at android.widget.Spinner.setOnItemClickListener(Spinner.java:566) at com.example.testmapview.Main2Activity.onCreate(Main2Activity.java:47)
错误说明 setOnItemClickListener 不能和spinner 一起使用,所以找了一个替代的方法,叫做setOnItemSelectedListener。
解决问题的代码:
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { String cardNumber = Main2Activity.this.getResources().getStringArray(R.array.spinner_main_arr)[position]; Toast.makeText(Main2Activity.this, "" + cardNumber, Toast.LENGTH_SHORT).show(); } @Override public void onNothingSelected(AdapterView<?> parent) { } });
更多相关文章
- 第一行代码Android学习(十)
- Android:Calling startActivity() from outside of an Activity
- Android在代码中设置控件的drawableLeft,drawableRight,drawableTo
- Android随笔--短小精悍的代码段(持续更新)
- 随想录(一个android原生app的代码赏析)
- 【转】Android 文件系统的权限设置
- Loader和Fragment使用示例代码
- 安卓android readonly 无法增删文件