Android 微调器OnItemSelectedListener双击问题
我遇到了一个奇怪的问题。我的OnItemSelectedListener似乎只工作一次,我的意思是,它在第一次单击响应项时显示我的测试土司,但在第二次单击同一项时不显示测试土司。(在第二次单击其他项时确实工作)问题出在哪里?请帮帮我 部分代码在这里Android 微调器OnItemSelectedListener双击问题,android,android-spinner,Android,Android Spinner,我遇到了一个奇怪的问题。我的OnItemSelectedListener似乎只工作一次,我的意思是,它在第一次单击响应项时显示我的测试土司,但在第二次单击同一项时不显示测试土司。(在第二次单击其他项时确实工作)问题出在哪里?请帮帮我 部分代码在这里 //get task object from menu taskListArr = new ArrayList<Task>(); taskListArr = getCurrentTasks(taskLis
//get task object from menu
taskListArr = new ArrayList<Task>();
taskListArr = getCurrentTasks(taskListArr);
myTask=new TaskListAdapter(this, 0, taskListArr);
ArrayAdapter<String> aa = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, TaskModel.sorts);
aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sortSpinner.setAdapter(aa);
sortSpinner.setOnItemSelectedListener(this);
@SuppressWarnings("unchecked")
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
if(arg2 == 0){
Toast.makeText(getApplicationContext(), "1", Toast.LENGTH_SHORT).show();
Collections.sort(taskListArr);
taskListView.setAdapter(myTask);
}
if(arg2 == 1){
Toast.makeText(getApplicationContext(), "2", Toast.LENGTH_SHORT).show();
Collections.sort(taskListArr, new DateComparator());
taskListView.setAdapter(myTask);
}
if(arg2 == 2){
Toast.makeText(getApplicationContext(), "3", Toast.LENGTH_SHORT).show();
Collections.sort(taskListArr, new PriorityComparator());
taskListView.setAdapter(myTask);
}
position = arg2;
}
public void onNothingSelected(AdapterView<?> arg0) {
}
//从菜单中获取任务对象
taskListArr=newarraylist();
taskListArr=getCurrentTasks(taskListArr);
myTask=新的TaskListAdapter(this,0,taskListArr);
ArrayAdapter aa=新的ArrayAdapter(此,
android.R.layout.simple_微调器_项,TaskModel.sorts);
aa.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
sortSpinner.setAdapter(aa);
sortSpinner.setOnItemSelectedListener(此);
@抑制警告(“未选中”)
已选择公共视图(适配器视图arg0、视图arg1、内部arg2、,
长arg3){
如果(arg2==0){
Toast.makeText(getApplicationContext(),“1”,Toast.LENGTH\u SHORT.show();
Collections.sort(taskListArr);
taskListView.setAdapter(myTask);
}
如果(arg2==1){
Toast.makeText(getApplicationContext(),“2”,Toast.LENGTH_SHORT.show();
Collections.sort(taskListArr,newdatecomparator());
taskListView.setAdapter(myTask);
}
如果(arg2==2){
Toast.makeText(getApplicationContext(),“3”,Toast.LENGTH_SHORT.show();
Collections.sort(taskListArr,new PriorityComparator());
taskListView.setAdapter(myTask);
}
位置=arg2;
}
未选择公共无效(AdapterView arg0){
}
在android开发者网站上查看spinner
它一次选择一个子对象。因此,再次选择已选择的子对象将不会调用onItemSelected函数。我同意用户936414的回答,他是对的,但如果您仍然希望吐司再次出现,请在微调器上添加一个触控式侦听器,并在ontouch事件中添加此项
line sortSpinner.setOnItemSelectedListener(this);
每次触摸时,您的微调器侦听器都会再次被调用,并且您每次都会选中项目谢谢您的解释,但我仍然需要弄清楚如何多次调用它。我会尝试一下,但它似乎不起作用。也许我需要创建一个自定义适配器来处理这个问题。Sry,我尝试过,但失败了。我使用菜单侦听器来实现这个问题。谢谢
line sortSpinner.setOnItemSelectedListener(this);