Android Spiner PerformerНажмите на элементеВыбрано - PullRequest
5 голосов
/ 05 апреля 2011

У меня маленькая проблема с spinner.

Я создаю Spinner, когда пользователь нажимает кнопку. Spinner отображается в порядке, но при вызове onItemSelected ничего не происходит

Вот код

public void setUpSpinner(){
    spinner = new Spinner(this);
    CustomArrayAdapter<String> adapter = new CustomArrayAdapter<String>(this,     android.R.layout.simple_spinner_item, getAsStrings());
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);
    spinner.setOnItemSelectedListener(this);
}

public void onClick(View view) {       
    spinner.performClick();
}

public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {        
    String getName = (String) spinner.getSelectedItem();
    getListFromName(getName);
}

Кто-нибудь знает, что здесь не так?

Спасибо, ребята.

Ответы [ 3 ]

18 голосов
/ 06 апреля 2011

Решил проблему, добавив Spinner в мой xml с высотой и шириной, установленными на ноль.

0 голосов
/ 24 августа 2011

почему у вас есть spinner = new Spinner(this) в настройке?

наверняка у вас уже есть Spinner в XML вашего макета, тогда вы просто делаете spinner = (Spinner) findViewById(R.id.WHATEVER_THE_ID_IS_IN_THE_XML);, поэтому вам не нужно new

PS это то, как я определяю Spinner в макете XML

<Spinner
android:id="@+id/SPINNER_ID"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:gravity="center_horizontal" />
0 голосов
/ 05 апреля 2011

Это выглядит достаточно похоже на турориал, так что вернитесь к этому. Смотрите ниже:

Я не вижу этого, но реализует ли основной класс OnItemSelectedListener? Также вам нужно создать экземпляр Spinner внутри onCreate () в теле основного класса.

Эта строка должна быть в onCreate ();

spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());
...