2012-04-03 2 views
0

이상한 문제가 발생했습니다. 내 OnItemSelectedListener는 한 번만 작동하는 것처럼 보입니다. 즉, 상응하는 항목을 클릭하면 처음으로 테스트 토스트를 표시하지만 두 번째로 같은 항목을 클릭하면 테스트 토스트가 표시되지 않습니다. (작동 함 두 번째로 다른 항목을 클릭 할 때) 문제가 무엇입니까? PLZ 나에게 도움이Spinner OnItemSelectedListener double select issue

부분 코드는 안드로이드 개발자 사이트 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. 

그것은 한 번에 하나의 아이를 선택에

 //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

어떻게 회 전자 작동 방식 ..! – ngesh

답변

0

체크 아웃 스피너를 여기에있다. 따라서 이미 선택된 자식을 다시 선택해도 onItemSelected 함수는 호출되지 않습니다.

+0

설명해 주셔서 감사합니다.하지만 여러 번 호출하는 방법을 알아야합니다. –

0

나는 그가 맞다 user936414 대답에 동의하지만, 당신이 당신의 토스트 다시 올 것을 원하는 여전히 경우 다음 회에 터치 리스너에 추가하고 ontouch 경우에이 때마다로하여이

line sortSpinner.setOnItemSelectedListener(this); 

를 추가 회 전자 청취자를 만지면 다시 호출되며 매번 선택 항목이 선택됩니다.

+0

고맙습니다. 시도해 볼 것이지만 작동하지 않는 것 같습니다. 어쩌면이 문제를 처리하기 위해 사용자 지정 변환기를 만들어야 할 수도 있습니다. –

+0

비가 zwr 해 보셨습니까? – vipin

+0

Sry, 시도했지만 실패했습니다. 문제를 해결하기 위해 Menu listener를 사용했습니다. 감사 –