Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在recyclerview中搜索项目_Java_Android - Fatal编程技术网

Java 在recyclerview中搜索项目

Java 在recyclerview中搜索项目,java,android,Java,Android,我有一个recycler视图,在该视图中,我获得了web服务器上可用的文件和文件夹列表。在recycler视图中,我根据标志区分文件和文件夹。 问题在于搜索。当我搜索文件夹时,它工作得非常好。但当我搜索文件资源时,图像集是文件夹的,并且描述也是空白的。 下面是发生的情况 适配器的我的代码 public class PersonalFolderAdapter extends RecyclerView.Adapter<PersonalFolderAdapter.LRViewHolder>

我有一个recycler视图,在该视图中,我获得了web服务器上可用的文件和文件夹列表。在recycler视图中,我根据标志区分文件和文件夹。 问题在于搜索。当我搜索文件夹时,它工作得非常好。但当我搜索文件资源时,图像集是文件夹的,并且描述也是空白的。 下面是发生的情况

适配器的我的代码

public class PersonalFolderAdapter extends RecyclerView.Adapter<PersonalFolderAdapter.LRViewHolder> {

    Context context;
    ArrayList<PersonalFolderModel> fileList , filterList;

    private OnItemClickListener mOnItemClickListener;
    private String DrivePath = Environment.getExternalStorageDirectory().toString() + File.separator + "Mobi" + File.separator + "Drive"+ File.separator + "Downloads";

    public PersonalFolderAdapter(Context context, ArrayList<PersonalFolderModel> fileList, OnItemClickListener onItemClickListener) {
        this.context = context;
        this.fileList = fileList;
        mOnItemClickListener = onItemClickListener;
        this.filterList = new ArrayList<>();
        this.filterList.addAll(fileList);
    }


    @Override
    public LRViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        Context context = parent.getContext();
        LayoutInflater inflater = LayoutInflater.from(context);
        // Inflate the custom layout
        View contactView = inflater.inflate(R.layout.raw_individual, parent, false);
        // Return a new holder instance
        return new LRViewHolder(contactView);
    }

    @SuppressLint("SetTextI18n")
    @Override
    public void onBindViewHolder(final LRViewHolder holder, @SuppressLint("RecyclerView") final int position) {
        // Get the data model based on position

        if (filterList.get(position) != null) {
            boolean isFile=fileList.get(position).getType_flag().equalsIgnoreCase("0");
            //if (fileList.get(position).getType_flag().equalsIgnoreCase("0")) {
                holder.bt_folder.setImageResource(isFile?R.drawable.icons_file:R.drawable.folder);
                holder.tv_fileNo.setText((position+1)+".");
                holder.fileName.setText(isFile?filterList.get(position).getFile_name():filterList.get(position).getFolder_name());
                holder.tv_date.setText(filterList.get(position).getUpload_date());
                holder.tv_desc.setText(isFile?filterList.get(position).getDesc():"");
                holder.tv_desc.setVisibility(isFile?View.VISIBLE:View.INVISIBLE);
                holder.labelDesc.setVisibility(isFile?View.VISIBLE:View.INVISIBLE);
                holder.bt_delete.setVisibility(isFile?View.VISIBLE:View.INVISIBLE);
                holder.bt_read.setVisibility(isFile?View.VISIBLE:View.INVISIBLE);

            /*} else {
                holder.bt_folder.setImageResource(R.drawable.folder);
                holder.tv_fileNo.setText("" + (position + 1) + ".");
                holder.fileName.setText(filterList.get(position).getFolder_name());
                holder.tv_date.setText(filterList.get(position).getUpload_date());
                holder.tv_desc.setVisibility(View.INVISIBLE);
                holder.labelDesc.setVisibility(View.INVISIBLE);
                holder.bt_delete.setVisibility(View.INVISIBLE);
                holder.bt_read.setVisibility(View.INVISIBLE);
            }*/
        }


        holder.bt_read.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                File file=new File(DrivePath,filterList.get(position).getFile_name());
                if (file.exists()){
                    mOnItemClickListener.onItemClick(view, position, "open");
                }else {
                    mOnItemClickListener.onItemClick(view, position, "read");
                }

            }
        });
        holder.bt_delete.setOnClickListener(new View.OnClickListener() {


            @Override
            public void onClick(View view) {
                mOnItemClickListener.onItemClick(view, position, "delete");
            }
        });

        holder.parent_card.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                if (filterList.get(position).getType_flag().equalsIgnoreCase("1")) {
                    mOnItemClickListener.onItemClick(view, position, "card");
                }

            }
        });
    }
    @Override
    public int getItemCount() {
        return (null != filterList ? filterList.size() : 0);
    }

    public interface OnItemClickListener {
        void onItemClick(View view, int position, String click);
    }

    public class LRViewHolder extends RecyclerView.ViewHolder {
        public TextViewVerdana fileName, tv_fileNo,tv_date,tv_desc,labelDesc;
        public ImageView bt_delete,bt_folder;
        public ImageView bt_read;
        public CardView parent_card;

        public LRViewHolder(View itemView) {
            super(itemView);
            fileName = (TextViewVerdana) itemView.findViewById(R.id.tv_fileName);
            tv_date = (TextViewVerdana) itemView.findViewById(R.id.tv_date);
            tv_desc = (TextViewVerdana) itemView.findViewById(R.id.tv_desc);
            bt_delete = (ImageView) itemView.findViewById(R.id.bt_delete);
            bt_read = (ImageView) itemView.findViewById(R.id.bt_read);
            bt_folder = (ImageView) itemView.findViewById(R.id.iv_file_type);
            tv_fileNo = (TextViewVerdana) itemView.findViewById(R.id.tv_fileNo);
            labelDesc = (TextViewVerdana) itemView.findViewById(R.id.labelDesc);
            parent_card= (CardView) itemView.findViewById(R.id.parent_card);
        }
    }
    // Do Search...
    public void filter(final String text) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                filterList.clear();
                if (TextUtils.isEmpty(text)) {
                    filterList.addAll(fileList);
                } else {
                    for (PersonalFolderModel item : fileList) {
                        if (item.getDesc().toLowerCase().contains(text.toLowerCase()) ||
                                item.getFile_name().toLowerCase().contains(text.toLowerCase()) ||
                                item.getUpload_date().toLowerCase().contains(text.toLowerCase()) ||
                                item.getFolder_name().toLowerCase().contains(text.toLowerCase())) {
                            // Adding Matched items
                            filterList.add(item);
                        }
                    }
                }
                // Set on UI Thread
                ((Activity) context).runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        notifyDataSetChanged();
                    }
                });

            }
        }).start();

    }

}
公共类PersonalFolderAdapter扩展了RecyclerView.Adapter{
语境;
ArrayList文件列表,filterList;
private-McClickListener监视器ClickListener;
私有字符串DrivePath=Environment.getExternalStorageDirectory().toString()+File.separator+“Mobi”+File.separator+“Drive”+File.separator+“Downloads”;
公共PersonalFolderAdapter(上下文上下文、ArrayList文件列表、OnItemClickListener OnItemClickListener){
this.context=上下文;
this.fileList=文件列表;
MonitorClickListener=onItemClickListener;
this.filterList=新的ArrayList();
this.filterList.addAll(文件列表);
}
@凌驾
公共LRViewHolder onCreateViewHolder(视图组父级,int-viewType){
Context=parent.getContext();
LayoutFlater充气机=LayoutFlater.from(上下文);
//对自定义布局进行充气
查看联系人视图=充气机。充气(R.layout.raw\u单个、父级、假);
//返回一个新的holder实例
返回新的LRViewHolder(contactView);
}
@SuppressLint(“SetTextI18n”)
@凌驾
公共无效onBindViewHolder(最终LRViewHolder持有人,@SuppressLint(“RecyclerView”)最终内部位置){
//根据位置获取数据模型
if(filterList.get(position)!=null){
布尔值isFile=fileList.get(position.getType_flag().equalsIgnoreCase(“0”);
//if(fileList.get(position.getType_flag().equalsIgnoreCase(“0”)){
holder.bt_folder.setImageResource(isFile?R.drawable.icons_文件:R.drawable.folder);
支架.tv_文件号setText((位置+1)+”);
holder.fileName.setText(isFile?filterList.get(position).getFile_name():filterList.get(position).getFolder_name());
holder.tv_date.setText(filterList.get(position.getUpload_date());
holder.tv_desc.setText(isFile?filterList.get(position).getDesc():“”);
holder.tv_desc.setVisibility(isFile?View.VISIBLE:View.INVISIBLE);
holder.labelDesc.setVisibility(isFile?View.VISIBLE:View.INVISIBLE);
holder.bt_delete.setVisibility(isFile?View.VISIBLE:View.INVISIBLE);
holder.bt_read.setVisibility(isFile?View.VISIBLE:View.INVISIBLE);
/*}否则{
holder.bt_folder.setImageResource(R.drawable.folder);
支架.tv_文件号setText(“+(位置+1)+”);
holder.fileName.setText(filterList.get(position.getFolder_name());
holder.tv_date.setText(filterList.get(position.getUpload_date());
支架.tv_desc.setVisibility(视图.不可见);
支架.标签C.设置可见性(视图.不可见);
holder.bt_delete.setVisibility(视图.不可见);
holder.bt_read.setVisibility(视图不可见);
}*/
}
holder.bt_read.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
File File=新文件(DrivePath,filterList.get(position).getFile_name());
if(file.exists()){
mOnItemClickListener.onItemClick(视图,位置,“打开”);
}否则{
mOnItemClickListener.onItemClick(视图、位置、“读取”);
}
}
});
holder.bt_delete.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
mOnItemClickListener.onItemClick(视图、位置,“删除”);
}
});
holder.parent_card.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
if(filterList.get(position.getType_flag().equalsIgnoreCase(“1”)){
mOnItemClickListener.onItemClick(视图、位置、“卡”);
}
}
});
}
@凌驾
public int getItemCount(){
返回值(null!=filterList?filterList.size():0);
}
公共接口侦听器{
void onItemClick(视图、int位置、字符串单击);
}
公共类LRViewHolder扩展了RecyclerView.ViewHolder{
public TextViewVerdana文件名、tv_文件号、tv_日期、tv_desc、labelDesc;
公共图像查看bt_删除,bt_文件夹;
公共图像查看bt_-read;
公共卡查看家长卡;
公共视图持有者(视图项视图){
超级(项目视图);
fileName=(TextViewVerdana)itemView.findViewById(R.id.tv_文件名);
tv_date=(TextViewVerdana)itemView.findViewById(R.id.tv_date);
tv_desc=(TextViewVerdana)itemView.findViewById(R.id.tv_desc);
bt_delete=(ImageView)itemviewbyd(R.id.bt_delete);
bt_read=(ImageView)itemView.findViewById(R.id.bt_read);
bt_folder=(ImageView)itemviewbyd(R.id.iv_文件类型);
tv_fileNo=(TextViewVerdana)itemView.findViewById(R.id.tv_fileNo);
labelDesc=(TextViewVerdana)itemView.findViewById(R.id.labelDesc);
父卡=(CardView)itemView.findViewById(R.id.parent\u卡);
}
}
//做搜索。。。
公共无效筛选器(最终字符串文本){
新线程(newrunnable()){
@凌驾
公开募捐{
filterList.clear();
if(TextUtils.isEmpty(text)){
filterList.addAll(文件列表);