之前一直都是这么写的 pageViewModel = ViewModelProviders.of(this).get(PageViewModel.class); //参数this是当前fragment 后来发现,这么写,问题很大== 当我们使用ViewPager(或ViewPager2)时,在Fragment重建后,ViewModel会被重新创建(与Fragment重建前的ViewModel不是同一个) 后来我改成了这样 pageViewModel = ViewModelProviders.of…
区别就在这里,Activity中添加菜单要这样: public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main_menu,menu); return super.onCreateOptionsMenu(menu); } 而在Fragment中要这样: public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { i…
通常多pane的设计中,比如Fragment A是个Headline,Fragement B是detail,那么B通常需要实现A的点击事件的接口,这样子的话,两个fragment就高耦合了,而且需要在Fragment A中编写一个interface,如果Fragment很多,情景更复杂些,就乱了.   这里可以使用EventBus这个框架,一个典型的发布者-订阅者模式.具体可以参考: https://github.com/greenrobot/EventBus   使用方法大致如下:   这个例…
(译者注:使用EF开发应用程序的一个难点就在于对其DbContext的生命周期管理,你的管理策略是否能很好的支持上层服务 使用独立事务,使用嵌套事务,并行执行,异步执行等需求? Mehdi El Gueddari对此做了深入研究和优秀的工作并且写了一篇优秀的文章,现在我将其翻译为中文分享给大家.由于原文太长,所以翻译后的文章将分为四篇.你看到的这篇就是是它的第二篇.原文地址:http://mehdi.me/ambient-dbcontext-in-ef6/) DbContext的默认行为 通常来…
1.创建类继承PreferenceActivity 2.该类必须重写OnBuildHeaders和isValidFragment方法.         (1)OnBuildHeaders方法中使用loadHeadersFromResource方法加载preference-headers的xml资源文件         (2)isValidFragment方法中修改返回值为true,以此校验prefere-headers资源文件引用的fragment正确性 3. 该类写内部静态类(外部写也行,但必…
需求场景: 在开发中遇到下面这样场景: 1.创建 Fragment A 显示.  这时栈的结构是: .Fragment A 2.创建 Fragment B 并 显示.  从下到上看,这时栈的结构是: 2.Fragment B 1.Fragment A 3.创建 Fragment C 并 显示.  从下到上看,这时栈的结构是: 3.Fragment C 2.Fragment B 1.Fragment A 那么,如何从 Fragment C 一次性跳到 Fragment A 呢? 实现: 入栈时,使…
新建的一个Fragment,被一个Activity使用,那么这个Activity需要继承一个接口: public class MainActivity extends Activity implements HistoryFragment.OnFragmentInteractionListener{ } 否则会被报错 java.lang.ClassCastException: com.livingspring.luchebao.MainActivity@4261c220 must impleme…
在与嵌入式设备通讯的过程中使用的socket通讯 获取的字节流,通常转换为字节数组,需要根据协议将字节数组拆分.对于有规律的重复拆分可以使用,由于java中不能像c中直接进行内存操作例如使用struct 内存拷贝可以直接实现,这里考虑的是借用数组拷贝的方式来实现. java数组复制参考 引自百度空间 同时参考 数组拷贝之java.lang.System.arraycopy和java.util.Arrays.copyOf方法 java数组复制的4种方式,java数组拷贝问题 JAVA数组的复制是引…
部分数据使用枚举比较方便,java中的enmu不如c#中使用方便 记录备忘 以c#中的代码为例 public enum PlayState { /// <summary> /// 关闭 /// </summary> Closed = , /// <summary> /// 播放 /// </summary> Playing = , /// <summary> /// 随听 /// </summary> Listening = , //…
项目中有一处需要监听宿主的控件,再去更新Fragment页面,由此必须去获取Fragment里的对象; 在FragmentActivity + Fragment组合里是可以使用以下方案: MedicFragment Medic= (MedicFragment ) getSupportFragmentManager().findFragmentById(R.id.fragment_medic); 但是在ViewPager里是获取不了Fragment的对象,经过资料查才找,在这里找到了答案:http…