2012-05-14 6 views
0

Я сфальсифицировал решение TabActivitydescribed here, но, разумеется, поскольку это хакерский подход, есть проблемы, связанные с контекстом элементов управления. В частности, диалоги и прядильщики не очень хорошо себя ведут и терпят крах во время выполнения, потому что контекст неправильный. Я хочу, чтобы мой контекст Spinner был getParent(), но я не знаю, как настроить контекст spinner вне его конструктора. Я явно не называю конструктор в это время, потому что я подключаю счетчик, используя findViewById. Есть ли способ настройки контекста Spinner? Вот мой текущий код:Настройка контекста элемента управления прядильником в Android

categorySpinner = (Spinner) findViewById(R.id.spinner_category); 
    categoryAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list3); 
    categoryAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    categorySpinner.setAdapter(categoryAdapter); 

    categorySpinner.setOnItemSelectedListener(this); 

ответ

1

getActivity() - ваш друг в этих ситуациях. Это позволит вам установить контекст текущей активности.

+0

Я использовал вариант этой идеи ... 'View viewToLoad = mInflater.from (this.getParent()). Inflate (R.layout.resource_filter, null); setContentView (viewToLoad); ' –

+0

где положить getActivity() для установки spinner Context to getParent()? LayoutInflater кажется работающим, но я не могу использовать LayoutInflater, это вызовет другие проблемы для другой части моего кода. – Faizal

+0

Это был бы первый параметр, когда вы делаете вызов адаптера, который помещает данные в счетчик. – Barak