Доступ к элементам в FragmentActivity из объекта Fragment - PullRequest
2 голосов
/ 22 февраля 2012

У меня есть FragmentActivity с FragmentPagerAdapter, который содержит несколько объектов Fragment, через которые я могу скользить с помощью горизонтального пролистывания.

Мне было интересно, могу ли я получить доступ к элементу ("elementToBeChanged") в FragmentActivity из объекта Fragment? Я хотел бы передать строку из класса Fragment в элемент TextView, который находится в объекте FragmentActivity.

public class GalleryPagerActivity extends FragmentActivity implements OnClickListener {

private TextView elementToBeChanged;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    super.setContentView(R.layout.gallery_pager);

    elementToBeChanged = (TextView) findViewById(R.id.tvTop);
    elementToBeChanged.setOnClickListener(this);

}
}

Как бы мне это сделать? Элемент TextView должен обновляться каждый раз, когда появляется объект Fragment (с проведением).

Это должно выглядеть примерно так:

public class GalleryFragment extends Fragment {

private FragmentActivity fa;
private LinearLayout ll;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    fa = super.getActivity();

    ll = (LinearLayout) inflater.inflate(R.layout.gallery_fragment, container, false);
...
// ////////
// UPDATE THE "TextView elementToBeChanged" object in the parent FragmentActivity class HERE WHENEVER THIS FRAGMENTS BECOMES ACTIVE/VISIBLE...
// ////////

    return ll;
}

1 Ответ

10 голосов
/ 23 февраля 2012

В вашей GalleryPagerActivity создайте такую ​​функцию, как updateTextView (текст строки).Эта функция установит TextView на любое значение ввода.Затем в вашем GalleryFragment просто вызовите эту функцию с текстом, который будет отображаться следующим образом:

    ((GalleryPagerActivity)getActivity()).updateTextView("my text");
...