我没有得到在列表视图上搜索项目的正确输出

I am not getting correct output of searching an item on listview

onCreate 中的适配器设置

  myAdapter = new MyAdapter(emp_list_activity.this,R.layout.checkable_list_layout,listview_array);
    search_view_j.setOnQueryTextListener(this);
    employee_list_View.setAdapter(myAdapter);

  search_view_j.setOnQueryTextListener(this);

@Override
public boolean onQueryTextSubmit(String query) {
    return false;
}

@Override
public boolean onQueryTextChange(String newText) {
    myAdapter.getFilter().filter(newText);
    return false;
}



 private class MyAdapter extends ArrayAdapter {

    public MyAdapter(Context context, int resource, ArrayList<String> objects) {
        super(context, resource, objects);
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        View v = getLayoutInflater().inflate(R.layout.checkable_list_layout,null);


        return v;
    }

我正在使用这个自定义列表视图并在列表视图上添加一个 searview 但我没有得到输出但是当我使用没有自定义的简单列表视图时我得到了完美的输出,你能检查代码并为我提供解决方案吗我的代码哪里出了问题

自定义布局xml文件checkablelistlayout.xml

    <RelativeLayout  
       xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/RelativeLayout01"
         android:layout_width="match_parent"
         android:layout_height="match_parent">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="#000000"
    android:textSize="18dp"
    android:layout_marginLeft="10dp"
    android:layout_centerVertical="true"
    android:layout_alignParentLeft="true"
    android:id="@+id/list_tv"/>

</RelativeLayout>

我正在搜索项目,但它只显示一个已经在顶部的项目,如果不匹配则显示空白。所以请告诉我问题是什么

Look at this code

** 在你的 recyclerview 上 activity ** 1)创建编辑文本 2)找出身份证 3) 添加 addTextChangeListener

search_txt.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {

        }

        @Override
        public void afterTextChanged(Editable s) {
            filter(s.toString());
        }
    });

4) 添加方法

private void filter(String txt)
{
    ArrayList<ModelClass> temList=new ArrayList<>();

    for(ModelClass s:list)
    {
        if(s.getName().contains(txt))
        {
            temList.add(s);
        }
    }

    adapter.filterList(temList); //call this method which is written in adapter class
}

5) 在适配器class下面写方法getItemCount()(供参考)

public void filterList(ArrayList<ModelClass> fliterNm)
{
    this.data=fliterNm;
    notifyDataSetChanged();
}

希望这个回答对您有所帮助..