Как прочитать строку из выбранного события Spinner - PullRequest
0 голосов
/ 13 декабря 2011

У меня есть простое приложение, в котором пользователь выбирает один из штатов США, а выбранный штат должен использоваться для составления списка всех округов в этом штате.В onCreate я построил адаптер массива с именем Stateadapter и установил для него объект spinner «spinState».Затем я инициализировал класс слушателя StateOnItemSelectedListener.Помимо onCreate, у меня есть класс StateOnItemSelectedListener, который будет читать, какое состояние было выбрано в счетчике, а затем выполнять остальные задачи приложения.

У меня есть две проблемы: когда один шаг проходит через код в режиме отладки«parent.getItemAtPosition (pos) .toString» не возвращает строковое значение выбранного состояния (хотя многочисленные примеры в Интернете показывают, что это должно работать).

Во-вторых, при запуске приложение запускает прослушиватель, когдапроисходит через «Создать», и все выглядит хорошо, пока пользователь не выберет вращающийся элемент в пользовательском интерфейсе, а затем приложение не выполнит принудительное закрытие.

@Override
public void onCreate(Bundle savedInstanceState)
{       
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main);

    spinState = (Spinner)this.findViewById(R.id.spinState); 

    ArrayAdapter<String> Stateadapter = new ArrayAdapter<String>                        (this,android.R.layout.simple_spinner_item, array_spinState);
    Stateadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);    
    spinState.setAdapter(Stateadapter);   

    spinState.setOnItemSelectedListener(new StateOnItemSelectedListener());

}   

public class StateOnItemSelectedListener implements OnItemSelectedListener
{   
    public void onItemSelected(AdapterView<?> parent, View itemSelected,  int pos, long         id) 
    {   State = spinState.getItemAtPosition(pos).toString();
        //Do Stuff base on State;
    }

    public void onNothingSelected(AdapterView<?> parent)
    {   //Do nothing here 
    } 
}

1 Ответ

0 голосов
/ 13 декабря 2011

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

Что такое ошибка в журнале cat от принудительного закрытия и что getItemAtPosition возвращает ?

...