Tag: android lifecycle

更改片段列表正在改变其他片段

我有一个TabLayout / ViewPager与我的活动中的两个片段。 标签被创建,然后我请求一些信息。 当我得到这个信息,我更新每个选项卡的RecyclerView。 主要活动 private fun setViews() { val adapter = TabsAdapter(supportFragmentManager) adapter.addFragment(NewsFragment(), getString(R.string.dossier_activity_news)) adapter.addFragment(PhotosFragment(), resources.getString(R.string.dossier_activity_photos)) view_pager.adapter = adapter tab_layout.setupWithViewPager(view_pager) // request info } fun setPages(pages: List) { // got info ((view_pager.adapter as TabsAdapter).getItem(0) as NewsFragment).setPages(pages) ((view_pager.adapter as TabsAdapter).getItem(1) as PhotosFragment).setPages(pages) } 问题是:在第二个选项卡( PhotosFragment )中,我想删除所有不包含照片/缩略图的页面。 NewsFragment fun setPages(pages: List) { if (pages.isNotEmpty()) recycler_view.adapter […]

RxAndroid / RxLifeCycle – 处理处理onError而不是onComplete

我正在尝试将RxLifeCycle实现到与RxJava联网中。 我一直在使用Consumer一个子Consumer ,但是对于RxLifeCycle ,你需要处理onError 。 所以我已经转移到Observer 。 这个问题是,当调用被处置时,它调用onComplete而不是onError ,我更喜欢。 buildle.gradle: // RxJava compile ‘io.reactivex.rxjava2:rxandroid:2.0.1’ compile ‘io.reactivex.rxjava2:rxjava:2.0.3’ compile ‘com.trello.rxlifecycle2:rxlifecycle-kotlin:2.2.1’ compile ‘com.trello.rxlifecycle2:rxlifecycle-android-lifecycle-kotlin:2.2.1’ 我以前的NetworkConsumer是这样构建的,我会处理accept所有结果。 NetworkConsumer: abstract class NetworkConsumer : Consumer<NetworkResponse> { @Throws(Exception::class) override fun accept(response: NetworkResponse) { … } // to override open fun onSuccess(response: T) {} open fun onComplete() {} } 我的网络电话都使用Single结构化。 fun getFavorites(): Single<NetworkResponse<Array>> 我正在使用它。 service.getFavorites(…) […]

如何开始按钮点击新的活动

在Android应用程序中,如何在单击另一个活动中的按钮时启动新的活动(GUI),以及如何在这两个活动之间传递数据?

一个LiveData中有多个对象

我有这个实体: @Entity public class CartItem { @PrimaryKey(autoGenerate = true) private long id; private long itemId; private long serviceId; private String observation; @Ignore private Service service; @Ignore private Item item; } 正如你所看到的,它由其他对象组成,在这种情况下, Service和Item 。 在片段中,我以这种方式实现LiveData: CartItemViewModel model = CartItemViewModel.create(getActivity()); model.getLiveData().observe(this, new Observer<List>() { @Override public void onChanged(@Nullable List cartItems) { } 它正在工作, onChange方法正在按预期调用。 这是我在kotlin中的ViewModel: class CartItemViewModel […]

Kotlin代表更有趣

如果您了解Google的实验性Android架构组件,您可能会知道MutableLiveData 。 试图使它更有趣使用我来与: class KotlinLiveData<T>(val default: T) { val data = MutableLiveData<T>() operator fun getValue(thisRef: Any?, property: KProperty<*>):T { return data.value ?: default } operator fun setValue(thisRef: Any?, property: KProperty<*>, value:T) { if (Looper.myLooper() == Looper.getMainLooper()) { data.value = value } else { data.postValue(value) } } } 然后我可以: var name : String by KotlinLiveData("not given") […]