小编sha*_*agi的帖子

MVP适配器数据缓存

我正在开发遵循MVP架构的项目.通常,当我使用recyclerView时,我的演示者控制适配器数据.但是现在我需要使用来自缓存(或类似缓存的数据)的数据制作回收器适配器,回收器的大小不依赖于缓存大小,所以我通过HashMap进行缓存,其中密钥是 - 回收器的位置,如果有一个项目然后数据显示地图,否则空行与"添加事件"btn.我无法意识到这种结构中缓存的位置 - 模型(Dao或类似CacheManager)或适配器.

缓存的想法如下:我有一些类型的事件存储在数据库中,每个事件修改都在db中更改它 - 所以缓存也必须更新.

主要问题是:在哪里保留此缓存并将其加载到适配器,如何使其与数据库更改保持同步.

PS我也尝试使用RX,所以如果可以用它来解决 - 试试会很有趣.

PPS如果它是Repository模式是解决方法 - 欢迎.前一段时间阅读它.

mvp android caching

11
推荐指数
1
解决办法
1196
查看次数

仅排除一种风味的特定依赖关系

我有很多风格(例如 5 种),并且它们都使用共同的依赖关系。

我知道如何仅编译一种风格的库(flavorImplementation“org.sample:lib:1.0”)。但现在我需要排除其中一种口味的这种依赖性。我已经用风格中的存根覆盖了依赖包,但依赖关系仍然针对这种风格进行编译。

dependencies android gradle

6
推荐指数
1
解决办法
388
查看次数

如何只发送Rx和Retrofit的最后一次请求?

我有一个EditText视图和TextWatcher,在onTextChanged方法我必须从EditText字段查询服务器的结果.在我的演示者中,我使用rx,但我需要延迟搜索,直到用户的输入结束.这时我得到了这个:

service.getData(query)
            .delaySubscription(REQUEST_DELAY_FROM_SERVER, TimeUnit.MILLISECONDS, Schedulers.io())
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(
                    data-> {
                        getViewState().showData(data);
                    },
                    error -> {
                        Log.e(this.getClass().getSimpleName(), error.getMessage(), error);
                    }
            );
Run Code Online (Sandbox Code Playgroud)

但是delaySubscription不能按预期工作.它收集所有呼叫,延迟后发送每个呼叫.我必须做同样的事情,好像我曾经使用过handler.postDelayed(),只发送一次请求.

android rx-java retrofit rx-android

5
推荐指数
1
解决办法
1029
查看次数

错误:指定的子级已有父级.您必须首先在孩子的父母上调用removeView()

无法理解有什么不对,第二天就打破了我的脑袋......

我想使用带有2个选项卡的TabLayout,其中第一个带有ArtistModel的RecyclerView,但是当我用RecyclerView给Fragment充气时会出现此错误.

这是我的代码. 分段

package com.shagi.yandex.lookart.fragment;    

import android.app.Fragment;
import android.os.Bundle;

import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.shagi.yandex.lookart.JsonHelper;
import com.shagi.yandex.lookart.MainActivity;
import com.shagi.yandex.lookart.R;
import com.shagi.yandex.lookart.adaptor.ArtistsAdapter;
import com.shagi.yandex.lookart.pojo.Artist;

import java.util.List;
import java.util.concurrent.ExecutionException;    

/**
 * A simple {@link Fragment} subclass.
 */
public class ArtistsFragment extends Fragment {

    private RecyclerView rvArtists;
    private RecyclerView.LayoutManager layoutManager;

    private ArtistsAdapter adapter;

    private List<Artist> artists;

    public MainActivity activity;

    public ArtistsFragment() {
        // Required empty public constructor
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) { …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-recyclerview

3
推荐指数
1
解决办法
4480
查看次数

如何删除 JGraphX 库中的顶点?

我正在尝试解决需要在 Swing 中显示图形的任务。找到了JGraph框架(现在称为 JGraphX)。在示例中,该graph.insertVertex(...)方法用于添加顶点和graph.insertEdge(...)边缘的方法 - 好吧,它工作正常。

但是之后如何删除该顶点?

java swing jgraphx

2
推荐指数
1
解决办法
2899
查看次数