Fragment中调用Activity的UI

1:Fragment内定义一个接口,或外部定义一个接口,

2:Fragment定义一个接口对象的属性

3:Activity实现这个接口

4:Fragment的onAttach方法中强转Activity为接口

例如:

@Override
public void onAttach(Activity activity)
{
  super.onAttach(activity);

  try
  {
    onFragmentChangeListener = (OnFragmentChangeListener)activity;
  }
  catch(ClassCastException e)
  {
    throw new ClassCastException(activity.toString() + " must implement OnFragmentChangeListener");
  }
}

时间: 2025-01-01 20:54:20

Fragment中调用Activity的UI的相关文章

如何在Service中更新Activity的UI?

============问题描述============ 如何在Service中更新Activity的UI? 不想用广播.  有人说用接口,具体如何实现我一直不懂? 请赐教. ============解决方案1============ 将activity 实例传过来不就OK 了?然后调用其方法更新UI ============解决方案2============ 一般都用广播,否则在Activity也创建一个Messenger,也就是AIDL方式通信. ============解决方案3=====

解决在Fragment中启动Activity时传递请求码的问题

解决在Fragment中启动Activity时传递请求码的问题: 首先需要指出的是Fragment有startActivityForResult方法,而Activity中也有startActivityForResult方法:两者的区别是: Fragment中的startActivityForResult方法: FragmentActivity中的startActivityForResult方法: 从官方的解释中可以看出Fragment中的startActivityForResult方法是调用的是

Fragment中获取Activity的Context (转)

Fragment中获取Activity的Context时只需要this.getActivity()即可.     而不是许多人说的this.getActivity().getApplicationContext(),如果用后者传入AlterDialog肯定会报错(android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application).    因为只有ac

Fragment中获取Activity的Context

Fragment中获取Activity的Context时只需要this.getActivity()即可.    而不是许多人说的this.getActivity().getApplicationContext(),如果用后者传入AlterDialog肯定会报错(android.view.WindowManager$BadTokenException: Unable to addwindow -- token null is not for an application).   因为只有activ

Android Fragment中调用getActivity为null的问题

在使用fragment的时候经常会遇到getActivity()为null的情况.比如我在一个异步网路请求的回调中调用了getActivity()就会出现空指针问题.之前解决这个问题,通常都是直接加空指针判断来规避,但是这并没有真正解决问题. 很多人都曾被这个问题所困扰,如果app长时间在后台运行,再次进入app的时候可能会出现crash,而且fragment会有重叠现象.如果系统内存不足.切换横竖屏.app长时间在后台运行,Activity都可能会被系统回收然后重建,但Fragment并不会随

在fragment中调用SharedPreferences

Activity中调用SharedPreferences的方式: String prefsName = "mysetting"; SharedPreferences prefs = getSharedPreferences(prefsName, Context.MODE_PRIVATE); boolean a1 = prefs.getBoolean("a1_key", false); boolean a2 = prefs.getBoolean("a2_ke

andorid在 Fragment中调用摄像机

我现在一个activity中有三个multiple fragments ,我现在采集我第三个 fragments信息 在这个fragments 上我想启动相机或者图库,看下面代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 public Intent getImageIntent() {     // Camera.  

Android的Fragment中onActivityResult不被调用的解决方案

常见的,我们会在FragmentActivity中嵌套一层Fragment使用,甚至两次或多层Fragment嵌套使用.这个时候,在第二级或者更深级别的Fragment调用startActivityForResult方法时,将无法收到onActivityResult回调.阅读FragementActivity源码后发现,原来是源码里没有处理嵌套Fragment的情况,也就是说回调只到第一级Fragment,就没有继续分发.我们可以实现一个自己的AppCompatActivity,来实现继续分发,

Android的Fragment中onActivityResult不被调用的解决方案(绝对管用)

常见的,我们会在FragmentActivity中嵌套一层Fragment使用,甚至Fragment下层层嵌套使用.这个时候,在第二级或者更深级别的Fragment将无法收到onActivityResult回调,查看FragementActivity的源码发现: public void startActivityFromFragment(Fragment fragment, Intent intent, : int requestCode) { : if (requestCode == -1)