2014-10-29 5 views
1

У меня есть основное действие, состоящее из spinner + 3 фрагмента (вкладки). Я хочу получить значение spinner из фрагмента. Поэтому я написал этот код в onActivityCreated внутри моего фрагмента:Android: активация активности активности от фрагмента

final Spinner spinner = (Spinner) getView().findViewById(R.id.spinnerOblasti); 
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
    @Override 
    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { 
     /*TextView[] vystrahy = new TextView[1]; 
     vystrahy[0] = (TextView) getView().findViewById(R.id.txtVystrahy); 
     (new htmlParser(vystrahy, 0)).execute(new Integer[]{spinner.getSelectedItemPosition()});*/ 
    } 

    @Override 
    public void onNothingSelected(AdapterView<?> parent) { 

    } 
}); 

, но когда я запускаю мое приложение кок бросает NullPointerException. Любые идеи о том, как получить доступ к нему из фрагмента?

Вот мой onCreateView, который я считаю, что вызывает проблемы, но я не знаю, как это исправить:

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.fragment_tab1, container, false); 
    return rootView; 
} 

Спасибо вперед

ответ

0

Не работает так, что вы имеете в виду для блесны стоимость? Если вы хотите получить доступ к объекту spinner, вам необходимо настроить интерфейс, который будет реализован вашей деятельностью, а затем в onActivityCreated вы можете вызвать метод этого интерфейса, чтобы что-то сделать. Например:

public class MyClass implements MyInterface { 
    public interface MyInterface { 
     void doSomethingWithSpinner(); 
    } 

    public void doSomethingWithSpinner() { 
     mySpinner.setVisibility(View.VISIBLE); 
    } 
} 

И ваш onActivityCreated:

if(getActivity() instanceof MyInterface) { 
    ((MyInterface)getActivity()).doSomethingWithSpinner(); 
} 
+0

Объяснение: У меня есть счетчик, который состоит из 8 элементов. Исходя из выбранного элемента, я извлекаю определенную часть HTMl с сайта. Например, первый элемент извлекает первый div и т. Д. Поэтому мне нужен только слушатель, который прослушивает изменение выбранного элемента spinner, а затем вызывает мой метод и анализирует его позицию выбранного элемента. – horin

+0

. Тогда вам не нужно брать значение счетчика из фрагмента, который вы может просто создать метод внутри фрагмента и вызвать его из активности при изменении значения счетчика – TheRedFox

+0

Спасибо, он работает – horin

Смежные вопросы