Как установить положение в прядильщике?

Я прочитал текст BufferedReader из системного файла; этот текст содержит, например, 5 СЛОВ, но в другом случае он может содержать меньше или больше слов. Затем я поместил этот текст (упомянутые слова) в строку SINGLE и сохранил эту строку для общих настроек. Затем я сделал прядильщик из этой строки. Код выглядит следующим образом:

Spinner spinner = new Spinner(this);
    ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, yourString.split(" "));
    spinner.setAdapter(spinnerArrayAdapter);

Затем я читаю текст из другого файла. Этот текст всегда содержит одно слово. И это слово совпадает с одним из слов, которые я прочитал из первого файла (например, если первый файл, который я прочитал, содержал 5 слов и одно из этих слов, было "черным", второй файл, который я читал также содержит "черный" ). И мне нужно сделать это конкретное слово (которое существует в обоих файлах) как выбранный по умолчанию вариант в моем счетчике.

Например:

Первая строка содержит: красный, синий, желтый, черный, белый

Вторая строка содержит: желтый

Я делаю прядильщик из первой строки, поэтому параметры в spinner заполняются точно так: "красный, синий, желтый, черный, белый", а выбранная по умолчанию опция красная (потому что это первый в моей первой строка), но в этом случае мне нужно сделать желтый, как выбранный по умолчанию параметр, потому что вторая строка содержит "желтый". Слова в обеих строках всегда разные.

Кстати: я знаю, как сохранить позицию в счетчике, но я не знаю, как установить позицию в прядильщике, если я сравниваю две строки и один из них содержит больше слов.

Ответ 1

Вот решение, спасибо sfratini за помощью.

Использование:

spinner.setSelection(getIndex(spinner, myString));

Тогда:

private int getIndex(Spinner spinner, String myString){

        int index = 0;

        for (int i=0;i<spinner.getCount();i++){
            if (spinner.getItemAtPosition(i).equals(myString)){
                index = i;
            }
        }
        return index;
}

Ответ 2

Я думаю, что эта строка поможет вам

 String[] a= new String[10];
 a[0]="abc";
 a[1]="xyz";
 a[2]="pqr";
 .....
 .....
 spin = (Spinner) findViewById(R.id.TimeSpinner);
 ArrayAdapter<String> adapter = new ArrayAdapter<String>(TimeSpin.this, android.R.layout.simple_spinner_item, a);  
   adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)‌​;  
   spin.setAdapter(adapter); 
   spin.setSelection(0);

Ответ 3

Вам не нужно использовать Adapter... вам просто нужно преобразовать массив String в список
И затем используйте indexOf (Объект объекта), чтобы получить индекс вашего вращения с использованием выбранного цвета

String [] strings = yourString.split(" ");
List<String> strList = new ArrayList<String>(Arrays.asList(strings));
//Or you can load array from xml...
//List<String> strList2 = Arrays.asList(getResources().getStringArray(R.array.array_color));
spinner.setSelection(strList.indexOf("colorvalue"));