2016-10-16 2 views
-1

У меня такой структурыКак вызвать метод фрагмента из активности Android?

  1. MainPage Activity1 имеет вид пейджера держа 3 фрагмента
  2. Я использую tabapdater
  3. Первый из фрагментов есть метод, чтобы перейти к другому деятельности2

Я хочу запустить какой-либо метод в первом фрагменте, когда кнопка нажата в Activity2

Могу ли я это сделать? Можете ли вы, ребята, дать мне пример кода?

Спасибо, ребята

+0

Вы хотите изменить первый фрагмент из второго действия ... я прав? –

+0

Да, это правильно, возможно ли это? –

+0

Я просто хочу передать некоторый объект из второго действия в первый фрагмент –

ответ

0

Есть некоторые решения. Первый, я думаю, startActivityForResult. Если вы начнете свою вторую деятельность, вызвав startActivityForResult вместо startActivity, вы можете ожидать результат в первом действии, переопределив метод onActivityResult, а затем измените там первый фрагмент.

Другое хорошее и простое решение использует автобусы, такие как EventBus и otto. Они хорошо документированы.

0

В классе Фрагмент:

public void foo(Object objectToPassFromActivity) { 
    // do what you want 
} 

В Вашей деятельности:

ExampleFragment fragment = (ExampleFragment) getFragmentManager().findFragmentByTag(getFragmentTag(R.id.yourViewPagerId, fragmentPosition); 
fragment.foo(objectToPassFromActivity) 

метод Add:

private String getFragmentTag(int viewPagerId, int fragmentPosition) { 
    return "android:switcher:" + viewPagerId + ":" + fragmentPosition; 
} 

Вы можете увидеть ссылку, которую я добавил в комментариях, чтобы получить более Детали.

+0

должен помещать идентификатор фрагмента в xml-файл? –

+0

Должен ли я положить фрагмент Id в xml-файл? –

+0

Как я могу поместить тег для первого фрагмента ????????? –