Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在自定义微调器下拉视图中指定选择事件?_Android_Spinner_Android Spinner - Fatal编程技术网

Android 如何在自定义微调器下拉视图中指定选择事件?

Android 如何在自定义微调器下拉视图中指定选择事件?,android,spinner,android-spinner,Android,Spinner,Android Spinner,我有一个自定义适配器来处理“信号”对象。它扩展了BaseAdapter,当我自定义TextView并从微调器的getDropDownView方法返回它时,它可以正常工作。但是,除了TextView标签之外,我还希望有一个播放/停止按钮,因此我扩展了LinearLayout以包含TextView和ImageButton。当我从getDropDownView返回自定义LinearLayout而不是纯文本视图时,它呈现良好,但微调器不会识别任何“选择”事件 当getDropDownView方法返回Te

我有一个自定义适配器来处理“信号”对象。它扩展了BaseAdapter,当我自定义TextView并从微调器的getDropDownView方法返回它时,它可以正常工作。但是,除了TextView标签之外,我还希望有一个播放/停止按钮,因此我扩展了LinearLayout以包含TextView和ImageButton。当我从getDropDownView返回自定义LinearLayout而不是纯文本视图时,它呈现良好,但微调器不会识别任何“选择”事件


当getDropDownView方法返回TextView时,单击TextView似乎会触发微调器选择更改,而我没有任何编码帮助。我还没有弄清楚安卓是如何做到这一点的。我想将微调器选择更改定义为单击LinearLayout中的TextView。我该怎么做呢?所有这些都是用Java代码定义和操作的,没有xml。

如果我理解您的问题,您想在用户单击微调器中的项目时播放声音吗?我将使用OnItemSelectedListener():

spinner.setOnItemSelectedListener(新的OnItemSelectedListener(){
已选择公共视图(AdapterView arg0、视图arg1、内部arg2、长arg3){
Log.v(“示例”,“所选项目”);
//播放声音
}
未选择公共无效(AdapterView arg0){
//无所事事
}
});

如果我理解您的问题,您想在用户单击微调器中的项目时播放声音吗?我将使用OnItemSelectedListener():

spinner.setOnItemSelectedListener(新的OnItemSelectedListener(){
已选择公共视图(AdapterView arg0、视图arg1、内部arg2、长arg3){
Log.v(“示例”,“所选项目”);
//播放声音
}
未选择公共无效(AdapterView arg0){
//无所事事
}
});

问题是,onItemSelected永远不会被调用。这就是我想弄明白的部分。为什么当我使用TextView时对话框会关闭并调用onItemSelected,但当我单击扩展的LinearLayout时却什么也没有发生?问题是onItemSelected永远不会被调用。这就是我想弄明白的部分。为什么当我使用TextView时对话框会关闭并调用onItemSelected,但当我单击扩展的LinearLayout时却什么也没有发生?顺便说一句,我的目标是Android版本2.x。我知道在Android的更高版本中,微调器发生了变化,但不知道这些变化会如何影响这个问题。顺便说一句,我的目标是Android版本2.x。我知道在Android的更高版本中,微调器发生了变化,但不知道这些变化会如何影响这个问题。
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
        Log.v("Example", "Item Selected");
        // Play sound
    }

    public void onNothingSelected(AdapterView<?> arg0) {
        // Do nothing
    }
});