如何在Fragment中访问父Activity视图

Bot*_*Bot 51 android fragment android-fragments

我有一个ActionBarActivity片段.我正在使用FragmentPagerAdapter它为我的应用程序提供片段.我的问题如何在Fragment中访问父Activity视图?

Rag*_*dan 136

您可以使用

View view = getActivity().findViewById(R.id.viewid);
Run Code Online (Sandbox Code Playgroud)

引用文档

具体来说,片段可以使用getActivity()访问Activity实例,并轻松执行诸如在活动布局中查找视图等任务

  • 是谁谁知道国家将会是什么,哈基我知道,但我吃午饭吃. (3认同)
  • Android 文档的编写方式非常愚蠢。文档引用为“具体来说,片段可以使用 getActivity() 访问 Activity 实例,并轻松执行诸如在 Activity 布局中查找视图之类的任务”,但 Android Studio 警告读取为“getActivity() 可能为 null” (2认同)

kis*_*rma 8

在 Kotlin 中,很容易在 Fragment 中访问父活动视图

activity!!.textview.setText("String")
Run Code Online (Sandbox Code Playgroud)


Moh*_*ari 6

首先,创建一个这样的视图:

View view = getActivity().findViewById(R.id.viewid);
Run Code Online (Sandbox Code Playgroud)

然后将其转换为您需要的任何视图,如下所示:

 if( view instanceof EditText ) {
            editText = (EditText) view;
            editText.setText("edittext");
            //Do your stuff
        }
Run Code Online (Sandbox Code Playgroud)

要么

if( view instanceof TextView ) {
  TextView textView = (TextView) view;
  //Do your stuff
}
Run Code Online (Sandbox Code Playgroud)