Android: проблема со спиннером - PullRequest
0 голосов
/ 07 апреля 2011

В моем main.xml у меня есть Spinner (вместе с другими компонентами).

            <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/SelProtocol_main" android:id="@+id/textView1_main"></TextView>
        <Spinner android:layout_width="wrap_content" android:layout_weight="1" 
        android:layout_height="wrap_content" android:id="@+id/cmb_protocol_main"
        android:drawSelectorOnTop="true"></Spinner>

В res / values ​​у меня protocol_array.xml со строковым массивом name = "protocol".

В моей Деятельности, в методе, вызванном из onCreate, у меня есть,

        prtlSpinner = (Spinner)findViewById(R.id.cmb_protocol_main);

    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.protocols, R.layout.main);   // HERE I GET ERROR
    adapter.setDropDownViewResource(R.layout.main);
    prtlSpinner.setAdapter(adapter);
    /*
    prtlSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {
            selectedProtocolIndex = prtlSpinner.getSelectedItemPosition();
            selectedProtocol = prtlSpinner.getSelectedItem().toString();
            Log.i(TAG, "prtlSpinner tem Selected = " + selectedProtocol + " Index = " + selectedProtocolIndex);             
        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            selectedProtocolIndex = -1;
            selectedProtocol = "";
        }

    });
    */

Исключение, которое я получаю: нужен TextView. Я пробовал разные способы, но ничего не получалось. С помощью приведенного выше кода, я получаю NullPointerException.Spinner код кодируется с использованием http://www.brighthub.com/mobile/google-android/articles/46782.aspx. Я не мог понять из документов также.

Может кто-нибудь помочь мне, где я иду не так? И зачем нам TextView для заполнения выпадающего списка? Код слушателя правильный или нет - мне просто нужно установить переменную на выбор с индексом и текстом выбранного элемента! Я не мог получить с Spinner. Любая помощь, руководство высоко ценится.

Спасибо

Ответы [ 2 ]

1 голос
/ 07 апреля 2011

ваш main.xml содержит 2 члена, textview и Spinner, тогда как arrayAdapter ожидает textview.Таким образом, вы можете использовать android.R.layout.simple_spinner_item или попробовать передать R.id.textView1_main

0 голосов
/ 07 апреля 2011

О, наконец, получилось.main.xml как есть.И в классе Java,

        ArrayAdapter<CharSequence> adapter = null;
    adapter = new ArrayAdapter<CharSequence>(this, android.R.layout.simple_spinner_item, array_spinner);    
    prtlSpinner.setAdapter(adapter);        
    prtlSpinner.setOnItemSelectedListener(this);

Вот и все.array_spinner - это String [] в самом классе.Все выздоровело и работает без сбоев.Не нужно никаких других макетов или около того.

Спасибо за попытку помочь мне.@frieza, я очень ценю вашу поддержку и руководство.Большое спасибо.

...