Android notifyDataSetChanged()不';不要刷新我的回收视图

Android notifyDataSetChanged()不';不要刷新我的回收视图,android,android-recyclerview,searchview,notifydatasetchanged,Android,Android Recyclerview,Searchview,Notifydatasetchanged,我需要一些帮助,我在尝试使用SearchView时遇到以下问题,我将把它们放到上下文中。 我有一个主要活动,它包含2个选项卡,每个选项卡都有各自的片段,在片段1中我必须包含,我想使用SearchView搜索和更新可用的选项卡列表,从片段1中我有一个RecycleServiceAdapter,它在该方法中实现filterable,获得一个比较和一个搜索结果,问题是,例如,对10寄存器4进行了比较,它们与搜索因子匹配,但不更新我的适配器 我的MyRecycleServiceAdapter: pa

我需要一些帮助,我在尝试使用SearchView时遇到以下问题,我将把它们放到上下文中。 我有一个主要活动,它包含2个选项卡,每个选项卡都有各自的片段,在片段1中我必须包含,我想使用SearchView搜索和更新可用的选项卡列表,从片段1中我有一个RecycleServiceAdapter,它在该方法中实现filterable,获得一个比较和一个搜索结果,问题是,例如,对10寄存器4进行了比较,它们与搜索因子匹配,但不更新我的适配器

我的MyRecycleServiceAdapter:

  package com.rchile.piper.radioschile;

import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.Typeface;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckedTextView;
import android.widget.CompoundButton;
import android.widget.Filter;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ToggleButton;

import com.rchile.piper.radioschile.DataDB.DataBaseManager;
import com.rchile.piper.radioschile.MainActivity;
import com.squareup.picasso.Picasso;
import com.squareup.picasso.Target;
import android.widget.Filter;
import android.widget.Filterable;

import java.util.ArrayList;

class MyRecyclerViewAdapter extends RecyclerView.Adapter<MyRecyclerViewAdapter.ViewHolder> implements Filterable{

    Context context;
    public  ArrayList<MainActivity.Radios> getDataAdapter;
    private ArrayList<MainActivity.Radios>  items;
    private ArrayList<MainActivity.Radios> itemsFiltered;

    Intent detailIntent;

    private static DataBaseManager manager;
    private static Cursor cursor;
    CustomFilter filter;


  /*  public MyRecyclerViewAdapter(ArrayList<MainActivity.Radios> getDataAdapter, Context context, ArrayList<MainActivity.Radios> items) {

        super();

        this.getDataAdapter = getDataAdapter;
        this.itemsFiltered = getDataAdapter;
        this.context = context;
        this.items = items;

    }*/

    public MyRecyclerViewAdapter(Context ctx,ArrayList<MainActivity.Radios> players)
    {

        this.context=ctx;
        this.getDataAdapter=players;

    }


    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_view_row, parent, false);

        ViewHolder viewHolder = new ViewHolder(v, context, getDataAdapter);

        return viewHolder;
    }
    public MyRecyclerViewAdapter(ArrayList<MainActivity.Radios> getDataAdapter) {

        this.getDataAdapter = getDataAdapter;
    }
   /* public MyRecyclerViewAdapter(Context context) {
        this.context = context;
    }*/

    @Override
    public void onBindViewHolder(ViewHolder holder, final int position) {





        holder.label.setText(getDataAdapter.get(position).getNombre());
        holder.idRadio.setText(getDataAdapter.get(position).getIdRadio());
        holder.sintonia.setText(getDataAdapter.get(position).getSintonia());
        String urlIcono = getDataAdapter.get(position).getUrlIcono();
        String esFavorito = getDataAdapter.get(position).getEsFavorito();
        Context contextt = holder.icono.getContext(); //<----- Add this line
        Context contextt2 = holder.imageButton.getContext();

        Picasso.with(contextt).load(urlIcono).into(holder.icono);


        if(esFavorito.equals("0")){
            Picasso.with(contextt2).load(R.drawable.es_favorito).into(holder.imageButton);
        }else{
            Picasso.with(contextt2).load(R.drawable.no_favorito).into(holder.imageButton);
        }


        holder.imageButton.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {

                fav(position,v);

            }
        });



    }

    @Override
    public int getItemCount() {
        return getDataAdapter.size();
    }
    @Override
    public Filter getFilter() {
        if(filter==null)
        {
            filter=new CustomFilter( getDataAdapter,this);
        }

        return filter;
    }





    class ViewHolder extends RecyclerView.ViewHolder
            implements View.OnClickListener {

        TextView label,idRadio,sintonia;
        TextView dateTime;
        RelativeLayout relativeLayout;
        ImageView icono;
        ImageButton imageButton;

        ImageButton fav;

        Context context;
        ArrayList<MainActivity.Radios> getDataAdapter;

        public ViewHolder(View itemView, Context context, ArrayList<MainActivity.Radios> getDataAdapter) {

            super(itemView);
            itemView.setOnClickListener(this);
            this.getDataAdapter = getDataAdapter;
            this.context = context;


            label = (TextView) itemView.findViewById(R.id.txt_nombre);
            idRadio = (TextView) itemView.findViewById(R.id.txt_id);
            sintonia = (TextView) itemView.findViewById(R.id.txt_sintonia);
            icono = (ImageView) itemView.findViewById(R.id.imgIcono);
            imageButton = (ImageButton) itemView.findViewById(R.id.buttonInfo);

        }


        @Override
        public void onClick(View v) {

            int position = getAdapterPosition();
            MainActivity.Radios getDataAdapter = this.getDataAdapter.get(position);



            detailIntent = new Intent(v.getContext(), Reproducir.class);
            detailIntent.putExtra("numero",  getDataAdapter.getIdRadio());
            v.getContext().startActivity(detailIntent);

        }
    }



    public void fav(final int position,View v) {
        ImageButton imageButton2;
        imageButton2 = (ImageButton) v.findViewById(R.id.buttonInfo);
        MainActivity.Radios getDataAdapter = this.getDataAdapter.get(position);
        manager = new DataBaseManager(v.getContext());

        cursor = manager.buaca1(getDataAdapter.getIdRadio());

        String esFavorito = "";
        if (cursor.getCount() == 1){
        if (cursor.moveToFirst()) {
            do {
                esFavorito = cursor.getString(4);
            } while (cursor.moveToNext());
        }

            if(esFavorito.equals("0")){
                esFavorito = "1";
                manager.updateFavorito(getDataAdapter.getIdRadio(),esFavorito);
                Picasso.with(v.getContext()).load(R.drawable.no_favorito).into(imageButton2);
            }else{
                esFavorito = "0";
                manager.updateFavorito(getDataAdapter.getIdRadio(),esFavorito);
                Picasso.with(v.getContext()).load(R.drawable.es_favorito).into(imageButton2);
            }

        }

    }
}
package com.rchile.piper.chile;
导入android.content.Context;
导入android.content.Intent;
导入android.database.Cursor;
导入android.graphics.Bitmap;
导入android.graphics.Typeface;
导入android.graphics.drawable.BitmapDrawable;
导入android.graphics.drawable.drawable;
导入android.support.v4.app.Fragment;
导入android.support.v4.app.FragmentManager;
导入android.support.v4.app.FragmentTransaction;
导入android.support.v4.content.ContextCompat;
导入android.support.v7.widget.RecyclerView;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.CheckedTextView;
导入android.widget.CompoundButton;
导入android.widget.Filter;
导入android.widget.ImageButton;
导入android.widget.ImageView;
导入android.widget.RelativeLayout;
导入android.widget.TextView;
导入android.widget.Toast;
导入android.widget.ToggleButton;
导入com.rchile.piper.radioscile.DataDB.DataBaseManager;
导入com.rchile.piper.radioschile.main活动;
导入com.squareup.picasso.picasso;
导入com.squareup.picasso.Target;
导入android.widget.Filter;
导入android.widget.Filterable;
导入java.util.ArrayList;
类MyRecycleServiceAdapter扩展了RecyclerView。适配器实现可筛选{
语境;
公共ArrayList getDataAdapter;
私有ArrayList项;
过滤的私有ArrayList项;
意图;意图;
私有静态数据库管理器;
私有静态游标;
自定义过滤器;
/*公共MyRecycleServiceAdapter(ArrayList getDataAdapter、上下文上下文、ArrayList项){
超级();
this.getDataAdapter=getDataAdapter;
this.itemsFiltered=getDataAdapter;
this.context=上下文;
这个项目=项目;
}*/
公共MyRecycleServiceAdapter(上下文ctx、ArrayList播放器)
{
this.context=ctx;
这个.getDataAdapter=players;
}
@凌驾
public ViewHolder onCreateViewHolder(视图组父级,int-viewType){
视图v=LayoutInflater.from(parent.getContext()).flate(R.layout.card\u View\u行,parent,false);
ViewHolder ViewHolder=新的ViewHolder(v,context,getDataAdapter);
返回视图持有者;
}
公共MyRecycleServiceAdapter(ArrayList getDataAdapter){
this.getDataAdapter=getDataAdapter;
}
/*公共MyRecycleServiceAdapter(上下文){
this.context=上下文;
}*/
@凌驾
公共无效onBindViewHolder(ViewHolder,最终int位置){
holder.label.setText(getDataAdapter.get(position.getNombre());
holder.idRadio.setText(getDataAdapter.get(position.getIdRadio());
holder.sintonia.setText(getDataAdapter.get(position.getSintonia());
字符串urlIcono=getDataAdapter.get(位置).getUrlIcono();
字符串esFavorito=getDataAdapter.get(位置).getEsFavorito();
Context contextt=holder.icono.getContext();//0)
{
//换到上
charSequence=charSequence.toString().toUpperCase();
//存储我们过滤的播放器
ArrayList filteredPlayers=新的ArrayList();

对于(int i=0;i您在
adapter.getDataAdapter.clear();
之后缺少
adapter.notifyDataSetChanged();
,这也是必需的,因为数据已更改。请按如下方式添加它:

adapter.getDataAdapter.clear();
adapter.notifyDataSetChanged();
adapter.getDataAdapter.addAll((ArrayList<MainActivity.Radios>) results.values);
adapter.notifyDataSetChanged();
adapter.getDataAdapter.clear();
adapter.notifyDataSetChanged();
adapter.getDataAdapter.addAll((ArrayList)results.values);
adapter.notifyDataSetChanged();
adapter.getDataAdapter.clear();
adapter.notifyDataSetChanged();
adapter.getDataAdapter.addAll((ArrayList<MainActivity.Radios>) results.values);
adapter.notifyDataSetChanged();