fragment调用方法isadded()、isvisible()、isDetached()

一 public final boolean isAdded()

如果该Fragment对象被添加到了它的Activity中,那么它返回true,否则返回false。

二 public final boolean isDetached()

如果该Fragment已经明确的从UI中分离,那么它返回true。也就是说,在该Fragment对象上使用FragmentTransaction.detach(Fragment)方法。

该方法在API Level 13中被引入。

三 public final boolean isHidden()

如果该Fragment对象已经被隐藏,那么它返回true。默认情况下,Fragment是被显示的。能够用onHiddenChanged(boolean)回调方法获取该Fragment对象状态的改变,要注意的是隐藏状态与其他状态是正交的---也就是说,要把该Fragment对象显示给用户,Fragment对象必须是被启动并不被隐藏。

四 Public final boolean isInLayout()

如果布局通过<fragment>标签被包含在Activity层次树中,那么它就返回true。当Fragment是通过<fragment>标签来创建的时候,这个方法始终会返回true。从之前的状态恢复旧的Fragment对象,并且该对象没有显示在当前状态的布局中的情况除外。

五 Public final boolean isRemoving()

如果当前的Fragment对象正在从它的Activity中被删除,那么就返回true。这删除过程不是该Fragment对象的Activity的结束过程,而是把Fragment对象从它所在的Activity中删除的过程。

六 public final boolean isResumed()

如果Fragment对象是在恢复状态中,该方法会返回true。在onResume()和onPause()回调期间,这个方法都返回true。

七 Public final boolean isVisible()

如果该Fragment对象对用户可见,那么就返回true。这就意味着它:1.已经被添加到Activity中;2.它的View对象已经被绑定到窗口中;3.没有被隐藏。

八 Public void onActivityCreated(Bundle savedInstanceState)

当Fragment对象的Activity被创建,并且Fragment对象的View层次树被实例化的时候,系统会调用这个方法。能够利用这个方法来做一些最后的初始化处理,如获取或恢复状态,还可用于那些使用setRetainInstance(boolean)方法来保留它们的实例的Fragment对象,因为这个回调方法会告诉Fragment对象,它是在什么时候跟这个新的Activity实例关联的。该回调方法在onCreateView(LayoutInflater, ViewGroup, Bundle)之后和onStart()之前被调用。

参数

savedInstanceState 如果该Fragment对象正在被重建,那么该参数指定之前被保存的状态。

public void onActivityResult(int requestCode, int resultCode, Intent data)

接收来自前面调用startActivityForResult(Intent, int)方法的结果。在Activity API的相关介绍中有关于onActivityResult(int, int, Intent)方法的介绍。

参数

requestCode 这个整数是由startActivityForResult()提供的初始请求Code,允许用来标识该结果的来源。

resultCode 这个整数是由子Activity通过它的setResult()方法设置并返回的结果Code。

Data 一个Intent类型的对象,它把结果数据返回给调用者(能包各种数据绑定给Intent对象的extras属性字段)。

九 public void onAttach(Activity activity)

当该Fragment对象被第一次绑定到它的Activity时,系统会调用这个方法。这个方法被调用之后,系统会调用该Fragment对象的onCcreate(Bundle)方法。

十 public void onConfigurationChanged(Configuration newConfig)

当设备配置改变且组件正在运行时,系统会调用这个方法。要注意的是,跟Activity不一样,在配置改变时,其他的组件不会被重启:它们始终通过重新获取资源来处理这种改变。

在该功能被调用后,被更新的资源对象会返回与新的配置相匹配的资源值。

参数

newConfing 指定新的设备配置。

十一 public boolean onContextItemSelected(MenuItem item)

在上下文菜单中的一个菜单项被选择时,系统会调用这个回调方法。对于所放生的普通的处理过程,该方法的默认实现只是简单的返回false(调用该项目的Runnable对象或把一个消息发送给相应的Handler)。可以使用这个方法针对菜单项做一些其他的处理。

使用getMenuInfo()方法来获取由添加给菜单项的View对象所设置的附加信息。

其子类应用通过调用基类的该方法实现来执行默认的菜单处理。

参数

item 该参数指定了被选择的上下文菜单项。

返回值

如果允许正常的上下文菜单处理,就返回false,否则返回true。

十二 public void onCreate(Bundle savedInstanceState)

Fragment对象被初始创建时,系统会调用该方法。调用时机是在onAttach(Activity)之后,onCreateView(LayoutInflater, ViewGroup, Bundle)之前。

要注意的是,该方法在其Fragment的Activity依然在被创建的过程中,也能够被调用。因此,不能在这个时点依赖正在被初始化的Activity的上下文View层次树。

参数

savedInstanceState 如果该Fragment正在被重建,那么这个参数会指定Fragment之前的状态。

public Animator onCreateAnimator(int transit, boolean enter, int nextAnim)

在Fragment对象加载一个动画时,系统会调用这个方法。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Fragment调用Activity的方法,可以通过以下步骤实现: 1. 定义一个接口,在Activity中实现该接口,并在Fragment中持有该接口的引用。 2. 在Fragment调用该接口的方法,即可实现调用Activity的方法。 具体实现步骤如下: 1. 定义一个接口,例如: ``` public interface OnFragmentInteractionListener { void onFragmentInteraction(String data); } ``` 2. 在Activity中实现该接口: ``` public class MainActivity extends AppCompatActivity implements OnFragmentInteractionListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public void onFragmentInteraction(String data) { // 在这里处理Fragment传递过来的数据 } } ``` 3. 在Fragment中持有该接口的引用,并在需要调用Activity的方法调用该接口的方法: ``` public class MyFragment extends Fragment { private OnFragmentInteractionListener mListener; @Override public void onAttach(Context context) { super.onAttach(context); if (context instanceof OnFragmentInteractionListener) { mListener = (OnFragmentInteractionListener) context; } else { throw new RuntimeException(context.toString() + " must implement OnFragmentInteractionListener"); } } @Override public void onDetach() { super.onDetach(); mListener = null; } private void sendDataToActivity(String data) { if (mListener != null) { mListener.onFragmentInteraction(data); } } } ``` 这样,在Fragment调用sendDataToActivity方法时,就可以实现调用Activity的onFragmentInteraction方法了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值