Создать спиннер без <Spinner in xml - PullRequest
1 голос
/ 16 марта 2011

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

Чтобы создать спиннер в OnCreate ():

selectArea = /*(Spinner)this.findViewById(R.id.spinner);*/new Spinner(this);

String[] ss = getResources().getStringArray(R.array.countries);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, ss);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

selectArea.setOnItemSelectedListener(new MyOnItemSelectedListener());
selectArea.setSelection(prefInt);

Для обработки события выбора:

public class MyOnItemSelectedListener implements OnItemSelectedListener {
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
        Log.d(TAG, "onItemSelected() " + id);
    }

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

Сработало почти идеально. В TableRow не отображается значок счетчика, при касании TableRow всплывают элементы, которые нужно выбрать. Моя единственная проблема заключается в том, что при выборе одного тайма я никогда не получаю свой onItemSelected () с именем ..
Что может быть не так?

Ответы [ 2 ]

1 голос
/ 05 февраля 2017

измените эту строку

spinner.setAdapter(adapter);

на строку

selectedArea.setAdapter(adapter);
0 голосов
/ 03 мая 2014

см. Я создал счетчик здесь

 Spinner selectArea= new Spinner(Activity.this);
     String[] ss = getResources().getStringArray(R.array.countries);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, ss);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    selectArea.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    selectArea.setAdapter(adapter);              
    linearLayout1.addView(selectArea);//to add your spinner
    selectArea.setOnItemSelectedListener(new MyOnItemSelectedListener());
...