有没有一种方法使用setOnClickListener与Android的微调? [英] Is there a way to use setOnClickListener with an Android Spinner?

查看:281
本文介绍了有没有一种方法使用setOnClickListener与Android的微调?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

该java.lang.RuntimeException的是不要叫setOnClickListener了一个AdapterView。你可能想setOnItemClickListener相反,但是这是不正确的。我使用setOnItemClickListener做一些东西,基于新的选择,但我也需要做一些东西,用户改变了选择之前。具体地讲,我收集数据对每个需要移动到另一个选择之前被保存到文件中的选择,因为其它选择与不同数据集合相关联。有没有一种方法使用setOnClickListener与Android的微调?

  spinner.setOnClickListener(新View.OnClickListener(){
    公共无效的onClick(视图v){
        //做一些东西的用户更改选择前
        ...

spinner.setOnItemSelectedListener(新OnItemSelectedListener(){
    @覆盖
    公共无效onItemSelected(适配器视图<>父,
            视图中查看,INT POS,长I​​D){
            //做一些基本onItemSelected
            ...
 

解决方案

您必须设置单击侦听器的基本观点(通常是一个TextView与ID:android.R.id.text1)上的微调​​的。要做到这一点:

  • 创建一个自定义的微调
  • 在构造器(带属性)通过提供布局android.R.layout.simple_spinner_item创建微调
  • 请一个findViewById(android.R.id.text1)获得的TextView
  • 现在,设置onClickListener到的TextView

The java.lang.RuntimeException is "Don't call setOnClickListener for an AdapterView. You probably want setOnItemClickListener instead," but that is not correct. I am using setOnItemClickListener to do some stuff based on the new selection, but I also need to do some stuff before the user changes the selection. Specifically, I am collecting data for each selection that needs to be saved to a file before moving to another selection, since the other selection is associated with different set of data. Is there a way to use setOnClickListener with an Android Spinner?

spinner.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        // Do some stuff before the user changes the selection
        ...

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent,
            View view, int pos, long id) {
            // Do some stuff based onItemSelected
            ...

解决方案

You will have to set the Click listener on the underlying view (normally a TextView with id: android.R.id.text1) of the spinner. To do so:

  • Create a custom Spinner
  • In the constructor (with attributes) create the spinner by supplying the layout android.R.layout.simple_spinner_item
  • Do a findViewById(android.R.id.text1) to get the TextView
  • Now set the onClickListener to the TextView

这篇关于有没有一种方法使用setOnClickListener与Android的微调?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆