如何为我的 GridView 包含 SearchView?

Posted

技术标签:

【中文标题】如何为我的 GridView 包含 SearchView?【英文标题】:How can i include a SearchView for my GridView? 【发布时间】:2020-07-28 09:02:43 【问题描述】:

**我想要的是,当用户在 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_
    android:layout_
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".Main2Activity"
    android:padding="3pt"
    android:background="#d4d3d3">


    <LinearLayout
        android:layout_
        android:layout_
        android:orientation="vertical">

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

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

</RelativeLayout>

【问题讨论】:

【参考方案1】:

这就是答案

主要活动

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;
        
    


    

适配器项

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_
android:layout_
xmlns:tools="http://schemas.android.com/tools"
tools:context=".Main2Activity"
android:padding="3pt"
android:background="#d4d3d3">


<LinearLayout
    android:layout_
    android:layout_
    android:orientation="vertical">

    <ListView
        android:id="@+id/lvlist"
        android:layout_
        android:layout_
        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>

这将完成

【讨论】:

以上是关于如何为我的 GridView 包含 SearchView?的主要内容,如果未能解决你的问题,请参考以下文章

Qml:如何为所有 GridView 项目设置属性

如何为 GridView 中的特定行指定 CSS 类?

ASP.NET:如何为 GridView 创建自定义分页器?

如何为多个图像创建随机数以在 Grid 中随机显示而不在 iOS 中重复?

如何为配置脚本指定包含目录

jQuery 选择器 ASP.NET GridView 列