Spinner OnItemSelectedListener двойной выбор проблемы - PullRequest
0 голосов
/ 03 апреля 2012

У меня странная проблема.Мой OnItemSelectedListener, кажется, работает только один раз, я имею в виду, что он показывает мой тестовый тост в первый раз, когда щелкает по элементам, отвечающим за ядро, но он не показывает тестовый тост, когда я нажимаю на тот же элемент во второй раз. (Он работаетпри повторном нажатии другого элемента) В чем проблема?Пожалуйста, помогите мне

частичный код здесь

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

}

Ответы [ 2 ]

0 голосов
/ 03 апреля 2012

Я согласен с user936414 ответ, что он прав, но если все-таки вы хотите, чтобы ваш тост пришел снова, добавьте слушателя на ощупь на ощупь и в событии касания добавьте это

line sortSpinner.setOnItemSelectedListener(this);

к этому каждый разкогда вы дотрагиваетесь до вашего спиннера, слушатель снова будет вызываться, и вы будете получать каждый раз выбранный элемент

0 голосов
/ 03 апреля 2012

Проверьте счетчик на сайте разработчиков 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.

...