2

私は FragmentPagerAdapter を持つ FragmentActivity を持っています。これは、水平スワイプでスライドできる Fragment オブジェクトを多数保持しています。

Fragment オブジェクト内から FragmentActivity の要素 ("elementToBeChanged") にアクセスできるかどうか疑問に思っていましたか? Fragment クラスから FragmentActivity オブジェクトにある TextView 要素に文字列を渡したいと思います。

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;
}
4

1 に答える 1

10

GalleryPagerActivity で updateTextView(String text) などの関数を作成します。その関数はTextView、入力値が何であれに設定します。次に、GalleryFragment で、次のように表示されるテキストを指定してこの関数を呼び出すだけです。

    ((GalleryPagerActivity)getActivity()).updateTextView("my text");
于 2012-02-22T21:06:29.570 に答える