今天学习的要点有以下:
一、使用Fragment实现底部导航,其中一个Tag页是Fragment嵌套一个Viewpager。 一开始制作Viewpager没考虑后面需要用Fragment实现TAG ,从而继承了FragmentActivity,继而调用的是Fragment管理器的getSupportFragmentManager()方法。
其实不应该继承FragmentActivity。因为这个页面应该作为一个Fragment来填充导航页。
应该调用getChildFragmentManager()例如:
MyFramgerPagerAdapter adapter2 =new MyFramgerPagerAdapter(getChildFragmentManager(), fraglist);
二、使用全局Application来得到Context
首先在清单文件注册Application
<application
android:name=".MyApplication"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
然后创建MyApplication.java,我们在这里使用 单例模式来对外保持Application的引用
public class MyApplication extends Application {
private static MyApplication instance;
@Override
public void onCreate() {
super.onCreate();
instance = this;
}
public static MyApplication getInstance(){
// 因为我们程序运行后,Application是首先初始化的,如果在这里不用判断instance是否为空
return instance;
}
}
这样在程序的任何地方都可以使用Application来得到Context,据说不会有内存泄漏。
public class MyApplication extends Application {
private static MyApplication instance;
@Override
public void onCreate() {
super.onCreate();
instance = this;
}
public static MyApplication getInstance(){
// 因为我们程序运行后,Application是首先初始化的,如果在这里不用判断instance是否为空
return instance;
}
}
Context context = MyApplication.getInstance();
<span style="font-family:SimSun;">Toast.makeText(context, "Your Toast Message", Toast.SHORT_TOAST).show();</span>
暂时这样。
Context context = MyApplication.getInstance();
<span style="font-family:SimSun;">Toast.makeText(context, "Your Toast Message", Toast.SHORT_TOAST).show();</span>