Как динамически изменять содержимое Spinners - PullRequest
0 голосов
/ 30 января 2012

Я поместил 4 блесны в SlidingDrawer.И я создал строковый массив в string.xml, как

<string-array name="colorArray">
        <item>Red</item>
        <item>Green</item>
        <item>Blue</item>
        <item>Orange</item>
        <item>While</item>
        <item>Black</item>
</string-array>

Я хочу заполнить счетчики этим массивом ..

Для этого я сделал как,

    option1 = (Spinner)findViewById(R.id.spinner_first);
    adapter = ArrayAdapter.createFromResource(getApplicationContext(), 
            R.array.colorArray, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    option1.setAdapter(adapter);

и то же самое для остальных 3. Теперь у меня работает нормально.Теперь результат выглядит так: весь массив указан на всех счетчиках.

Но я хочу удалить элемент, выбранный одним счетчиком, во всех остальных счетчиках, чтобы этот элемент не отображался на других 3... Например, если я выбрал «красный» для первого счетчика, элемент «Красный» должен быть удален из всех остальных счетчиков.

Как этого добиться.

Примеры кодови руководство будет заметно .. Заранее спасибо ..

Ответы [ 2 ]

0 голосов
/ 30 января 2012

В вашем onItemSelected () для OnItemSelectedListener для Spinner вам необходимо выполнить следующие действия для каждого из других Spinners

Spinner spinner; // Each one of the other spinners
String item; // Item selected in the current spinner

// Get the adapter for the other spinner
ArrayAdapter<CharSequence> array = spinner.getAdapter();
// Remove selected element in the current spinner from adapter
array.remove(item);
// Set adapter again
spinner.setAdapter(array);

Извините, но я не (и не могу) проверить это ...

0 голосов
/ 30 января 2012

просто создайте подмассив основного массива

, как при первом извлечении массива из XML-файла, теперь по умолчанию 0-я позиция выбрана по умолчанию, а затем пропущена в подмассиве

String mainArr[]; // fetch from xml

String sub1[] = new String[mainArr.length-1];

.значение основного массива в массив sub1 путем итерации и в get get условие для сохранения значения, если выбранный position == i затем пропускается или выбирается position!=i, делают это в слушателе изменения элемента, чтобы заново создать массив из основного массива с пропускомвыбранный пункт и уведомить его с помощью адаптера

...