如何访问TextView活动从Fragment里面它



我有ActivityA,其中包含FragmentA。如何从Fragment访问活动中的TextView

Fragment类中重写onViewCreated()方法,并使用Fragment View来声明TextView:

  @Override
      public void onViewCreated(View view, Bundle savedInstanceState) {
          super.onViewCreated(view, savedInstanceState);
          ActivityA.text_view= (TextView) view.findViewById(R.id.text_view); // your TextView must be declared as (public static TextView text_view) in the Activity    
          // now access the TextView as you want
  }

最简单的方法是在你的Mainactivity中创建一个getter方法,返回你的textview,并通过将你的fragment的activity投射到你的Mainactivity来访问它。

在Mainactivity中,

 public AppCompatTextView getMyTextView(){
    return myTextView;
}

在Fragment

((MainActivity)getActivity()).getMyTextView()

您可以使用callbacks或使您的片段作为inner class

对于callbacks,你需要在你的活动中实现一些interface,让你说你想更新你的TextView,并在片段onAttach方法中,你可以使用该接口的参考与活动通信。

示例:

在活动:

public class Question implements MyInterFace
在片段:

@Override
public void onAttach(Activity activity) {
    // TODO Auto-generated method stub
    youInterfaceObject = (MyInterFace)activity;
    super.onAttach(activity);
}

对于内部类,这很容易,只是创建一个全局变量的TextView在您的活动,并从内部类调用它。

可能对视图不起作用,但请尝试一下:

((MainActivity) getActivity()).textViewName;

最新更新