**我想要的是,当用户在searcView中搜索某些内容时,它可以看到带有他或她输入的字母的所有项目,并且当它碰到一个项目时,Id值将保存在要放入的TextView中以后的代码就是我想要的**

这是主要活动

import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;

import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.transition.Explode;
import android.util.EventLogTags;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SearchView;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;

public class Main2Activity extends AppCompatActivity {
    GridView lvlist;
    SearchView sv;

    ArrayList<AdapterItems>    listnewsData = new ArrayList<AdapterItems>();
    MyCustomAdapter myadapter;
    TextView description;
    ListView listView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);



        sv=findViewById(R.id.searcview);
        lvlist = findViewById(R.id.lvlist);
        description=findViewById(R.id.description);


        //add data and view it
        listnewsData.add(new AdapterItems("1","Te Soñaste con agua"));
        listnewsData.add(new AdapterItems("2","Te soñaste con un pato"));
        listnewsData.add(new AdapterItems("3","Te soñaste con un niño"));
        listnewsData.add(new AdapterItems("4","Te soñaste con o en la cama"));
        listnewsData.add(new AdapterItems("5","Te soñaste con un hombre"));
        listnewsData.add(new AdapterItems("6","Te soñaste con una mujer"));
        listnewsData.add(new AdapterItems("7","Te soñaste con un revolver"));
        listnewsData.add(new AdapterItems("8","Te soñaste con una culebra o serpiente"));
        listnewsData.add(new AdapterItems("9","Te soñaste con un muerto"));
        listnewsData.add(new AdapterItems("10","Te soñaste con un cañon"));
        listnewsData.add(new AdapterItems("11","Te soñaste con un arbol"));
        listnewsData.add(new AdapterItems("12" ,"Te soñaste con un soldado "));
        listnewsData.add(new AdapterItems("13" ,"Te soñaste con un gato negro"));
        listnewsData.add(new AdapterItems("14" ,"Te soñaste con un borracho"));
        listnewsData.add(new AdapterItems("15" ,"Te soñaste con una quinceañera"));
        listnewsData.add(new AdapterItems("16" ,"Te soñaste con un anillo"));
        listnewsData.add(new AdapterItems("17" ,"Te soñaste con una desgracia"));
        listnewsData.add(new AdapterItems("18" ,"Te soñaste con sangre"));
        listnewsData.add(new AdapterItems("19" ,"Te soñaste con pescados"));
        listnewsData.add(new AdapterItems("20" ,"Te soñaste con una fiesta"));
        listnewsData.add(new AdapterItems("21" ,"Te soñaste con un rio"));
        listnewsData.add(new AdapterItems("22" ,"Te soñaste con patitos"));
        listnewsData.add(new AdapterItems("23" ,"Te soñaste con un cocinero"));
        listnewsData.add(new AdapterItems("24" ,"Te soñaste con caballos"));
        listnewsData.add(new AdapterItems("25" ,"Te soñaste con un fantasma"));
        listnewsData.add(new AdapterItems("26" ,"Te soñaste con una misa"));
        listnewsData.add(new AdapterItems("27" ,"Te soñaste con un peine"));
        listnewsData.add(new AdapterItems("28" ,"Te soñaste con un loco"));
        listnewsData.add(new AdapterItems("29" ,"Te soñaste con un espejo"));
        listnewsData.add(new AdapterItems("30" ,"Te soñaste con flores"));
        listnewsData.add(new AdapterItems("31" ,"Te soñaste con luz"));
        listnewsData.add(new AdapterItems("32" ,"Te soñaste con mucho dinero"));
        listnewsData.add(new AdapterItems("33" ,"Te soñaste con mauras(aves negras)"));
        listnewsData.add(new AdapterItems("34" ,"Te soñaste con la cabeza"));
        listnewsData.add(new AdapterItems("35" ,"Te soñaste con un pajarito"));
        listnewsData.add(new AdapterItems("36" ,"Te soñaste con queso"));
        listnewsData.add(new AdapterItems("37" ,"Te soñaste con un dentista"));
        listnewsData.add(new AdapterItems("38" ,"Te soñaste con piedras"));
        listnewsData.add(new AdapterItems("39" ,"Te soñaste con lluvia"));
        listnewsData.add(new AdapterItems("40" ,"Te soñaste bailando"));
        listnewsData.add(new AdapterItems("41" ,"Te soñaste con un cuchillo"));
        listnewsData.add(new AdapterItems("42" ,"Te soñaste con prendas"));
        listnewsData.add(new AdapterItems("43" ,"Te soñaste con un maco o sapo"));
        listnewsData.add(new AdapterItems("44" ,"Te soñaste con la carcel"));
        listnewsData.add(new AdapterItems("45" ,"Te soñaste con una pistola"));
        listnewsData.add(new AdapterItems("46" ,"Te soñaste con tomate"));
        listnewsData.add(new AdapterItems("47" ,"Te soñaste con Santos"));
        listnewsData.add(new AdapterItems("48" ,"Te soñaste reviviendo"));
        listnewsData.add(new AdapterItems("49" ,"Te soñaste con carne"));
        listnewsData.add(new AdapterItems("50" ,"Te soñaste con pan"));
        listnewsData.add(new AdapterItems("51" ,"Te soñaste con un serrucho"));
        listnewsData.add(new AdapterItems("52" ,"Te soñaste con bebidas"));
        listnewsData.add(new AdapterItems("53","Te soñaste con un barco"));
        listnewsData.add(new AdapterItems("54","Te soñaste con vacas"));
        listnewsData.add(new AdapterItems("55","Te soñaste con musica"));
        listnewsData.add(new AdapterItems("56","Te soñaste con una caida"));
        listnewsData.add(new AdapterItems("57","Te soñaste con un jorobado"));
        listnewsData.add(new AdapterItems("58","Te soñaste con un abogado"));
        listnewsData.add(new AdapterItems("59","Te soñaste con matas (plantas)"));
        listnewsData.add(new AdapterItems("60","Te soñaste con una escuela"));
        listnewsData.add(new AdapterItems("61" ,"Te soñaste con una escopeta"));
        listnewsData.add(new AdapterItems("62" ,"Te soñaste con una inundacion"));
        listnewsData.add(new AdapterItems("63" ,"Te soñaste con madre e hija"));
        listnewsData.add(new AdapterItems("64" ,"Te soñaste con llanto"));
        listnewsData.add(new AdapterItems("65" ,"Te soñaste con una boda"));
        listnewsData.add(new AdapterItems("66" ,"Te soñaste con mujeres"));
        listnewsData.add(new AdapterItems("67" ,"Te soñaste con una mordida"));
        listnewsData.add(new AdapterItems("68" ,"Te soñaste con sobrinos"));
        listnewsData.add(new AdapterItems("69" ,"Te soñaste con vicios"));
        listnewsData.add(new AdapterItems("70" ,"Te soñaste con un limosnero"));
        listnewsData.add(new AdapterItems("71" ,"Te soñaste con excremento (pupu)"));
        listnewsData.add(new AdapterItems("72" ,"Te soñaste con un jarron"));
        listnewsData.add(new AdapterItems("73" ,"Te soñaste lesionado"));
        listnewsData.add(new AdapterItems("74" ,"Te soñaste con un moreno"));
        listnewsData.add(new AdapterItems("75" ,"Te soñaste con un payaso"));
        listnewsData.add(new AdapterItems("76" ,"Te soñaste con llamas"));
        listnewsData.add(new AdapterItems("77" ,"Te soñaste con muletas"));
        listnewsData.add(new AdapterItems("78" ,"Te soñaste con prostitutas"));
        listnewsData.add(new AdapterItems("79" ,"Te soñaste con un ladron"));
        listnewsData.add(new AdapterItems("80" ,"Te soñaste con pelotas"));
        listnewsData.add(new AdapterItems("81" ,"Te soñaste con matematicas"));
        listnewsData.add(new AdapterItems("82" ,"Te soñaste con peleas"));
        listnewsData.add(new AdapterItems("83" ,"Te soñaste con felicidad"));
        listnewsData.add(new AdapterItems("84" ,"Te soñaste con una iglesia"));
        listnewsData.add(new AdapterItems("85" ,"Te soñaste con una letrina"));
        listnewsData.add(new AdapterItems("86" ,"Te soñaste con un turista"));
        listnewsData.add(new AdapterItems("87" ,"Te soñaste con piojos"));
        listnewsData.add(new AdapterItems("88" ,"Te soñaste con el papa"));
        listnewsData.add(new AdapterItems("89" ,"Te soñaste con ratones"));
        listnewsData.add(new AdapterItems("90" ,"Te soñaste con miedo"));
        listnewsData.add(new AdapterItems("91" ,"Te soñaste con un pintor"));
        listnewsData.add(new AdapterItems("92","Te soñaste conun medico"));
        listnewsData.add(new AdapterItems("93","Te soñaste enamorado de alguien"));
        listnewsData.add(new AdapterItems("94","Te soñaste con un cementerio"));
        listnewsData.add(new AdapterItems("95","Te soñaste con los lentes"));
        listnewsData.add(new AdapterItems("96","Te soñaste con un tren"));
        listnewsData.add(new AdapterItems("97","Te soñaste con una mesa"));
        listnewsData.add(new AdapterItems("98","Te soñaste con la bandera"));
        listnewsData.add(new AdapterItems("99","Te soñaste con unos niños"));






        myadapter=new MyCustomAdapter(listnewsData);
        lvlist.setAdapter(myadapter);




        sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                return false;
            }


            @Override
            public boolean onQueryTextChange(String newText) {
                lvlist.setAdapter(myadapter);
                if (TextUtils.isEmpty(newText)) {
                    lvlist.clearTextFilter();
                } else {
                    lvlist.setFilterText(newText.toString());
                }

                return true;
            }
        });



    }







    public class MyCustomAdapter extends BaseAdapter  {
        public  ArrayList<AdapterItems>  listnewsDataAdpater ;





        public MyCustomAdapter(ArrayList<AdapterItems> listnewsDataAdpater) {
            this.listnewsDataAdpater=listnewsDataAdpater;

        }


        @Override
        public int getCount() {
            return listnewsDataAdpater.size();
        }

        @Override
        public String getItem(int position) {
            return null;
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent)
        {
            LayoutInflater mInflater = getLayoutInflater();
            View myView = mInflater.inflate(R.layout.ticket, null);

            final   AdapterItems s = listnewsDataAdpater.get(position);

            TextView tvTitle=(TextView)myView.findViewById(R.id.description);
            tvTitle.setText(String.valueOf(s.Description));

            myView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Toast.makeText(Main2Activity.this, s.Description, Toast.LENGTH_SHORT ).show();
                }
            });





            return myView;
        }


    }


    }```






这是我的AdapterItems

public class AdapterItems {

    public   String ID;
    public  String Description;
    //for news details
    AdapterItems( String ID,String Description)
    {
        this. ID=ID;
        this. Description=Description;
    }
}


这是我的XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".Main2Activity"
    android:padding="3pt"
    android:background="#d4d3d3">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <SearchView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/searcview"
            android:queryHint="Busque su sueño"
            android:iconifiedByDefault="false"/>

        <GridView
            android:id="@+id/lvlist"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:columnWidth="90dp"
            android:horizontalSpacing="3dp"
            android:numColumns="3"
            android:verticalSpacing="5pt" />
    </LinearLayout>

</RelativeLayout>

最佳答案

这就是答案

主要活动

import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.transition.Explode;
import android.util.EventLogTags;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SearchView;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Main2Activity extends AppCompatActivity {
    ListView lvlist;
    SearchView sv;

    ArrayList<AdapterItems>    listnewsData = new ArrayList<AdapterItems>();
    MyCustomAdapter myadapter;
    TextView description;
    ListView listView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);




        lvlist = findViewById(R.id.lvlist);
        description=findViewById(R.id.description);


        //add data and view it
        listnewsData.add(new AdapterItems("1","Te soñaste con agua"));
        listnewsData.add(new AdapterItems("2","Te soñaste con un pato"));
        listnewsData.add(new AdapterItems("3","Te soñaste con un niño"));
        listnewsData.add(new AdapterItems("4","Te soñaste con o en la cama"));
        listnewsData.add(new AdapterItems("5","Te soñaste con un hombre"));
        listnewsData.add(new AdapterItems("6","Te soñaste con una mujer"));
        listnewsData.add(new AdapterItems("7","Te soñaste con un revolver"));
        listnewsData.add(new AdapterItems("8","Te soñaste con una culebra o serpiente"));
        listnewsData.add(new AdapterItems("9","Te soñaste con un muerto"));
        listnewsData.add(new AdapterItems("10","Te soñaste con un cañon"));
        listnewsData.add(new AdapterItems("11","Te soñaste con un arbol"));
        listnewsData.add(new AdapterItems("12" ,"Te soñaste con un soldado "));
        listnewsData.add(new AdapterItems("13" ,"Te soñaste con un gato negro"));
        listnewsData.add(new AdapterItems("14" ,"Te soñaste con un borracho"));
        listnewsData.add(new AdapterItems("15" ,"Te soñaste con una quinceañera"));
        listnewsData.add(new AdapterItems("16" ,"Te soñaste con un anillo"));
        listnewsData.add(new AdapterItems("17" ,"Te soñaste con una desgracia"));
        listnewsData.add(new AdapterItems("18" ,"Te soñaste con sangre"));
        listnewsData.add(new AdapterItems("19" ,"Te soñaste con pescados"));
        listnewsData.add(new AdapterItems("20" ,"Te soñaste con una fiesta"));
        listnewsData.add(new AdapterItems("21" ,"Te soñaste con un rio"));
        listnewsData.add(new AdapterItems("22" ,"Te soñaste con patitos"));
        listnewsData.add(new AdapterItems("23" ,"Te soñaste con un cocinero"));
        listnewsData.add(new AdapterItems("24" ,"Te soñaste con caballos"));
        listnewsData.add(new AdapterItems("25" ,"Te soñaste con un fantasma"));
        listnewsData.add(new AdapterItems("26" ,"Te soñaste con una misa"));
        listnewsData.add(new AdapterItems("27" ,"Te soñaste con un peine"));
        listnewsData.add(new AdapterItems("28" ,"Te soñaste con un loco"));
        listnewsData.add(new AdapterItems("29" ,"Te soñaste con un espejo"));
        listnewsData.add(new AdapterItems("30" ,"Te soñaste con flores"));
        listnewsData.add(new AdapterItems("31" ,"Te soñaste con luz"));
        listnewsData.add(new AdapterItems("32" ,"Te soñaste con mucho dinero"));
        listnewsData.add(new AdapterItems("33" ,"Te soñaste con mauras(aves negras)"));
        listnewsData.add(new AdapterItems("34" ,"Te soñaste con la cabeza"));
        listnewsData.add(new AdapterItems("35" ,"Te soñaste con un pajarito"));
        listnewsData.add(new AdapterItems("36" ,"Te soñaste con queso"));
        listnewsData.add(new AdapterItems("37" ,"Te soñaste con un dentista"));
        listnewsData.add(new AdapterItems("38" ,"Te soñaste con piedras"));
        listnewsData.add(new AdapterItems("39" ,"Te soñaste con lluvia"));
        listnewsData.add(new AdapterItems("40" ,"Te soñaste bailando"));
        listnewsData.add(new AdapterItems("41" ,"Te soñaste con un cuchillo"));
        listnewsData.add(new AdapterItems("42" ,"Te soñaste con prendas"));
        listnewsData.add(new AdapterItems("43" ,"Te soñaste con un maco o sapo"));
        listnewsData.add(new AdapterItems("44" ,"Te soñaste con la carcel"));
        listnewsData.add(new AdapterItems("45" ,"Te soñaste con una pistola"));
        listnewsData.add(new AdapterItems("46" ,"Te soñaste con tomate"));
        listnewsData.add(new AdapterItems("47" ,"Te soñaste con Santos"));
        listnewsData.add(new AdapterItems("48" ,"Te soñaste reviviendo"));
        listnewsData.add(new AdapterItems("49" ,"Te soñaste con carne"));
        listnewsData.add(new AdapterItems("50" ,"Te soñaste con pan"));
        listnewsData.add(new AdapterItems("51" ,"Te soñaste con un serrucho"));
        listnewsData.add(new AdapterItems("52" ,"Te soñaste con bebidas"));
        listnewsData.add(new AdapterItems("53","Te soñaste con un barco"));
        listnewsData.add(new AdapterItems("54","Te soñaste con vacas"));
        listnewsData.add(new AdapterItems("55","Te soñaste con musica"));
        listnewsData.add(new AdapterItems("56","Te soñaste con una caida"));
        listnewsData.add(new AdapterItems("57","Te soñaste con un jorobado"));
        listnewsData.add(new AdapterItems("58","Te soñaste con un abogado"));
        listnewsData.add(new AdapterItems("59","Te soñaste con matas (plantas)"));
        listnewsData.add(new AdapterItems("60","Te soñaste con una escuela"));
        listnewsData.add(new AdapterItems("61" ,"Te soñaste con una escopeta"));
        listnewsData.add(new AdapterItems("62" ,"Te soñaste con una inundacion"));
        listnewsData.add(new AdapterItems("63" ,"Te soñaste con madre e hija"));
        listnewsData.add(new AdapterItems("64" ,"Te soñaste con llanto"));
        listnewsData.add(new AdapterItems("65" ,"Te soñaste con una boda"));
        listnewsData.add(new AdapterItems("66" ,"Te soñaste con mujeres"));
        listnewsData.add(new AdapterItems("67" ,"Te soñaste con una mordida"));
        listnewsData.add(new AdapterItems("68" ,"Te soñaste con sobrinos"));
        listnewsData.add(new AdapterItems("69" ,"Te soñaste con vicios"));
        listnewsData.add(new AdapterItems("70" ,"Te soñaste con un limosnero"));
        listnewsData.add(new AdapterItems("71" ,"Te soñaste con excremento (pupu)"));
        listnewsData.add(new AdapterItems("72" ,"Te soñaste con un jarron"));
        listnewsData.add(new AdapterItems("73" ,"Te soñaste lesionado"));
        listnewsData.add(new AdapterItems("74" ,"Te soñaste con un moreno"));
        listnewsData.add(new AdapterItems("75" ,"Te soñaste con un payaso"));
        listnewsData.add(new AdapterItems("76" ,"Te soñaste con llamas"));
        listnewsData.add(new AdapterItems("77" ,"Te soñaste con muletas"));
        listnewsData.add(new AdapterItems("78" ,"Te soñaste con prostitutas"));
        listnewsData.add(new AdapterItems("79" ,"Te soñaste con un ladron"));
        listnewsData.add(new AdapterItems("80" ,"Te soñaste con pelotas"));
        listnewsData.add(new AdapterItems("81" ,"Te soñaste con matematicas"));
        listnewsData.add(new AdapterItems("82" ,"Te soñaste con peleas"));
        listnewsData.add(new AdapterItems("83" ,"Te soñaste con felicidad"));
        listnewsData.add(new AdapterItems("84" ,"Te soñaste con una iglesia"));
        listnewsData.add(new AdapterItems("85" ,"Te soñaste con una letrina"));
        listnewsData.add(new AdapterItems("86" ,"Te soñaste con un turista"));
        listnewsData.add(new AdapterItems("87" ,"Te soñaste con piojos"));
        listnewsData.add(new AdapterItems("88" ,"Te soñaste con el papa"));
        listnewsData.add(new AdapterItems("89" ,"Te soñaste con ratones"));
        listnewsData.add(new AdapterItems("90" ,"Te soñaste con miedo"));
        listnewsData.add(new AdapterItems("91" ,"Te soñaste con un pintor"));
        listnewsData.add(new AdapterItems("92","Te soñaste conun medico"));
        listnewsData.add(new AdapterItems("93","Te soñaste enamorado de alguien"));
        listnewsData.add(new AdapterItems("94","Te soñaste con un cementerio"));
        listnewsData.add(new AdapterItems("95","Te soñaste con los lentes"));
        listnewsData.add(new AdapterItems("96","Te soñaste con un tren"));
        listnewsData.add(new AdapterItems("97","Te soñaste con una mesa"));
        listnewsData.add(new AdapterItems("98","Te soñaste con la bandera"));
        listnewsData.add(new AdapterItems("99","Te soñaste con unos niños"));



        myadapter=new MyCustomAdapter(listnewsData);
        lvlist.setAdapter(myadapter);




    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {


        getMenuInflater().inflate(R.menu.menu,menu);

        MenuItem menuitem= menu.findItem(R.id.search_view);

        SearchView searchView = (SearchView) menuitem.getActionView();

        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                return false;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                myadapter.getFilter().filter(newText);

                return false;
            }
        });


        return true;
    }

    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        int id= item.getItemId();

        if (id==R.id.search_view)
            return true;
        return super.onOptionsItemSelected(item);
    }

    public class MyCustomAdapter extends BaseAdapter implements Filterable {
        public  ArrayList<AdapterItems>  listnewsDataAdpater ;




        public MyCustomAdapter(ArrayList<AdapterItems> listnewsDataAdpater ) {
            this.listnewsDataAdpater=listnewsDataAdpater;

        }


        @Override
        public int getCount() {
            return listnewsDataAdpater.size();
        }

        @Override
        public String getItem(int position) {
            return null;
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent)
        {
            LayoutInflater mInflater = getLayoutInflater();
            View myView = mInflater.inflate(R.layout.ticket, null);

            final   AdapterItems s = listnewsDataAdpater.get(position);

            TextView tvTitle=(TextView)myView.findViewById(R.id.description);
            tvTitle.setText(String.valueOf(s.Description));

            myView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Toast.makeText(Main2Activity.this, s.ID, Toast.LENGTH_SHORT ).show();
                }
            });





            return myView;
        }


        @Override
        public Filter getFilter() {
            Filter filter= new Filter() {
                @Override
                protected FilterResults performFiltering(CharSequence constraint) {

                    FilterResults filterResults= new FilterResults();

                    if (constraint== null|| constraint.length()==0){
                        filterResults.count= listnewsData.size();
                        filterResults.values=listnewsData;
                    }else {
                        String searchStr = constraint.toString().toLowerCase();
                        ArrayList<AdapterItems> resultData = new ArrayList<>();

                        for (AdapterItems adapterItems:listnewsData){

                            if(adapterItems.getDescription().contains(searchStr)){
                                resultData.add(adapterItems);

                            }

                            filterResults.count=resultData.size();
                            filterResults.values=resultData;
                        }
                    }

                    return filterResults;
                }

                @Override
                protected void publishResults(CharSequence constraint, FilterResults results) {

                    listnewsDataAdpater= (ArrayList<AdapterItems>)results.values;
                    notifyDataSetChanged();

                }
            };

            return filter;
        }
    }


    }


AdapterItems

public class AdapterItems {

    public   String ID;
    public  String Description;
    //for news details
    public AdapterItems( String ID,String Description)
    {
        this. ID=ID;
        this. Description=Description;
    }

    public String getID() {
        return ID;
    }

    public void setID(String ID) {
        this.ID = ID;
    }

    public String getDescription() {
        return Description;
    }

    public void setDescription(String description) {
        Description = description;
    }
}




主要活动XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".Main2Activity"
android:padding="3pt"
android:background="#d4d3d3">


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ListView
        android:id="@+id/lvlist"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:columnWidth="90dp"
        android:horizontalSpacing="3dp"
         />
</LinearLayout>

</RelativeLayout>


您必须使用资源类型菜单创建一个新的android资源目录,然后在该文件夹中创建一个新的菜单资源文件,在该资源文件中您必须添加netx代码

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/search_view"
        android:title="Busque su sueno"
        app:actionViewClass="android.widget.SearchView"
        android:icon="@android:drawable/ic_menu_search"
        app:showAsAction="always"

        />
</menu>



这将完成

关于java - 如何为GridView包含SearchView?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61227952/

10-10 20:19