Android 如何为微调器视图设置onClickListener()?

Android 如何为微调器视图设置onClickListener()?,android,spinner,Android,Spinner,我想捕捉用户与类似onCLickListener的微调器的交互。针对“AdapterView上不调用onClickListener()错误”,我发现了一些建议,建议您使用自定义微调器重写构造函数,以便在微调器创建的视图上设置onClickListener() 尝试: public class MySpinner extends Spinner { public static final String TAG = "MyApp"; public MySpinner(Context contex

我想捕捉用户与类似onCLickListener的微调器的交互。针对“AdapterView上不调用onClickListener()错误”,我发现了一些建议,建议您使用自定义微调器重写构造函数,以便在微调器创建的视图上设置onClickListener()

尝试:

public class MySpinner extends Spinner {

public static final String TAG = "MyApp";

public MySpinner(Context context, AttributeSet attrs) {
    super(context, attrs);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(context, R.array.temp_systems, android.R.layout.simple_spinner_item);
    TextView spinner_text = (TextView) findViewById(android.R.id.text1);
    OnClickListener spinnerOnClickListener = new OnClickListener() {

        public void onClick(View v) {
            Log.d(TAG, "Should do something!");
        }

    };

    spinner_text.setOnClickListener(spinnerOnClickListener);

    setAdapter(adapter);
}

}
公共类MySpinner扩展微调器{
公共静态最终字符串TAG=“MyApp”;
公共MySpinner(上下文、属性集属性){
超级(上下文,attrs);
ArrayAdapter=ArrayAdapter.createFromResource(上下文,R.array.temp_系统,android.R.layout.simple_微调器_项);
TextView微调器_text=(TextView)findViewById(android.R.id.text1);
OnClickListener spinnerOnClickListener=新的OnClickListener(){
公共void onClick(视图v){
Log.d(标记“应该做点什么!”);
}
};
spinner_text.setOnClickListener(spinnerOnClickListener);
设置适配器(适配器);
}
}
但当我试图将其包含在布局中时,我会因为未能充气而崩溃


这里要澄清的是,当用户单击下拉菜单中的项目时,而不是当微调器折叠时,onItemClickListener将激发。我需要在单击初始微调器之后但在它创建下拉菜单之前进行拦截。

它们的意思可能是
覆盖
setOnItemClickListener
,然后在构造函数中调用它。因此,在您的
mySpinner
类中,您需要添加:[注意,它是在ITEM click listener上调用的,这可能也是您的问题的一部分]

@Override
    public void setOnItemClickListener(
            android.widget.AdapterView.OnItemClickListener l) {
        super.setOnItemClickListener(l);
//... do action here that you want to happen when item in spinner is clicked
    }
不知道这是否会解决你的问题,但我希望它会有所帮助。祝你好运

而且可能值得使用

public void onItemSelected(AdapterView<?> parent,
        View view, int pos, long id) {
     //do stuff
    }
public void已选择(AdapterView父级、,
视图,内部位置,长id){
//做事
}

不确定为什么需要扩展Spinnner,或者为什么要在TextView上分配一个单击侦听器。您应该在微调器上指定一个选择侦听器。根据Spiner示例,考虑:

1) 具有带有微调器控件的布局

2) 在你的活动中有一个“微调器”成员

3) 通过
setContentView
对布局进行充气,然后通过
findViewById


4) 设置微调器的适配器,并在微调器上调用
setOnItemSelectedListener
以分配选择侦听器您可以使用OnTouchListener而不是OnClickListener,OnClickListener对微调器不可用。

您能显示它给出的错误/崩溃日志吗?我认为您应该看看微调器示例。另外,请发布更多关于布局以及如何设置视图/充气的信息。