无法比较片段

时间:2017-09-18 04:48:34

标签: android android-fragments arraylist

我想将arraylist与我的状态列表进行比较,以在主片段中显示unBlocked状态,这是我要比较的数据

this is **idStatusBlocked = {"sdads # asdadsf # advdvff"};**<br>
this is **listData = [{"idStatus":"asdfsdf", "name":"BWaaa"}, {"idStatus":"advdvff","name":"aaaa"}];**

此代码是在我强制执行阻止操作之前

@Override
public void setList(List<StatusObject> listData){
    adapter.addAll(listData);
    adapter.notifyDataSetChanged();
}

并且为了实现阻止的操作,这是我尝试的

@Override
public void setList(List<StatusObject> listData){

    PreferenceHelper helper = new PreferenceHelper(mContext);
    String item = helper.getString(PreferenceHelper.BLOCK);
    String[] idStatusBlocked = item.split("#");

    List<StatusObject> filter = new ArrayList<>();
    for (String v : idStatusBlocked) {
        if (!listData.contains(v)) {
            filter.add((StatusObject) listData);
        }       
    }
}

我从上面的代码得到的只是将 listData 的大小与 idStatusBlocked 进行比较,我想要的是什么 1。如何将idStatus中的listDataidStatusBlocked进行比较? 2。在比较数据后,如何使用我的适配器进行调度?

1 个答案:

答案 0 :(得分:0)

setList更改为此

@Override
public void setList(List<StatusObject> listData){
    PreferenceHelper helper = new PreferenceHelper(mContext);
    String item = helper.getString(PreferenceHelper.BLOCK);

    Set<String> blocked = new HashSet<>(Arrays.asList(item.split("#")));
    List<StatusObject> filter = new ArrayList<>();

    for (StatusObject s : listData) {
        if (!blocked.contains(s.getIdStatus())) {
            filter.add(s);
        }
    }
}