我遇到了一个奇怪的问题。我的OnItemSelectedListener似乎只运行一次,我的意思是它在第一次单击相应的项目时显示我的测试Toast,但是当我第二次点击同一项目时它没有显示测试Toast。(它确实有效)在第二次点击不同的项目时)有什么问题?请帮助我
部分代码在这里
//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) {
}
答案 0 :(得分:0)
在Android开发者网站http://developer.android.com/reference/android/widget/Spinner.html
中查看微调器A view that displays one child at a time and lets the user pick among them. The items in the Spinner come from the Adapter associated with this view.
一次选择一个孩子。因此,再次选择已选择的子项将不会调用onItemSelected函数。
答案 1 :(得分:0)
我同意user936414回答他是对的,但是如果你仍然希望你的吐司再来,那么在你的微调器上添加一个触摸式监听器并在ontouch事件中添加这个
line sortSpinner.setOnItemSelectedListener(this);
每当你触摸你的微调器时,每次都会再次调用侦听器,你每次都会选择on item