Spinner внутри вкладки - PullRequest
       15

Spinner внутри вкладки

0 голосов
/ 01 ноября 2010

У меня проблема со счетчиком в хосте вкладок:

На самом деле мне удалось сделать динамически, используя

Spinner spinner = new Spinner(isChild() ? getParent() : this);

но я хочу, чтобы это было определено файлом XML. как это

Spinner spinner =  (Spinner) this.findViewById(R.id.widget10);

У меня проблема при использовании (OnItemSelectedListener ())

при открытии диалога выбора ??

пожалуйста, мне нужна помощь,

думаю, что.

Ответы [ 2 ]

2 голосов
/ 01 августа 2011

Предположим, есть два класса1 и класс2

В классе 1 определите метод

public static View makeSpinner(Context context) {

    View v = LayoutInflater.from(context).inflate(R.layout.spinner, null);
    Spinner spinner = (Spinner) v.findViewById(R.id.spinner);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(context, android.R.layout.simple_spinner_dropdown_item);
    adapter.add("one");
    adapter.add("two");
    adapter.add("three");
    spinner.setAdapter(adapter);
    return v;
}

и в классе 2, где вам нужен доступ к счетчику, определите его setContentView, как показано ниже:-

setContentView(MainActivity.makeSpinner(getParent())); 
0 голосов
/ 12 февраля 2012

Я нашел другое решение.

Моя проблема заключалась в том, что у меня был MapView в том же действии, что и счетчик.Из-за этого я не мог использовать описанную технику.

И на самом деле я не хотел перепроектировать весь свой проект, поэтому я просто заменил мой счетчик в XML-файле на FrameLayout.

Теперь мой код выглядит так:

Spinner spinner = new Spinner(isChild() ? getParent() : this);

ArrayAdapter<String> adapter = new ArrayAdapter<String>(getParent(),
                                  android.R.layout.simple_spinner_item, data);

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

FrameLayout frame = (FrameLayout)findViewById(R.id.frameLayoutSpinnerTarget);
frame.addView(spinner);
...