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