android spinner как да не зададете стойност за избор

Имам спинер, който взема данни от сървъра, искам да задам първата стойност за избор като „Задаване на град“. Пълня спинера така:

s_city = (Spinner) findViewById(R.id.s_city);
        ArrayAdapter<String> cityAdapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, Data.cities);
        cityAdapter
                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        s_city.setAdapter(cityAdapter);

Искам първият избор да бъде set city, знам, че мога да го добавя в първия ot Data.cities, но питам дали има стандартен начин от android.


person user user    schedule 03.02.2013    source източник
comment
винаги можете да поставите допълнителен запис във вашия адаптер, който не представлява избор, и да го направите първоначалния избран елемент в Spinner.   -  person Pragnani    schedule 03.02.2013
comment
как моля? ще ми даде пример за код   -  person user user    schedule 03.02.2013
comment
protected static String[] cities = new String[] {""}; това е data.cities, попълвам го от сървър   -  person user user    schedule 03.02.2013


Отговори (3)


Просто бих добавил „Set City“ като първи въртящ се елемент. В ArrayAdapter има метод за вмъкване http://developer.android.com/reference/android/widget/ArrayAdapter.html#insert(T, int) .Можете да добавите вашия „Set City“ като първи елемент.

person Kristopher    schedule 03.02.2013
comment

Ако съм прав, тогава да.. поставете преди вашия скрипт

SET DEFINE OFF

СЪЗДАВАНЕ ИЛИ ЗАМЕНЯНЕ И РАЗРЕШАВАНЕ НА JAVA ИЗТОЧНИК НАЗВАН....

Вашият код...

накрая... /

НАСТРОЙВАНЕ НА ВКЛ

обратно.. или можете просто да отидете на редактор - изпълнете израз, а не изпълнете като скрипт. надеждата помага..

- person user user; 03.02.2013

Добавете допълнителен елемент „Задаване на град“ в началото на вашия списък и след това направете следното:

SpinnerAdapter adapter = new ArrayAdapter<String>(getActivity(),
            R.layout.list_item, list) {
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View v = super.getView(position, convertView, parent);
            if (position == 0) {
                ((TextView) v.findViewById(android.R.id.text1)).setText("");
                ((TextView) v.findViewById(android.R.id.text1)).setHint("Set City");
            }
            return v;
        }
    };

Също така не забравяйте да обработвате специално позиция 0, когато обработвате onItemSelected.

person Leo K    schedule 08.04.2013

можете да зададете така
Spinner.setSelection(Adapter.NO_SELECTION, false);

виж това

Как да изберете първия елемент от центрофуга в тест

person Zakir Pervez    schedule 05.04.2017