Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.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
Android 如何添加搜索?_Android_Search - Fatal编程技术网

Android 如何添加搜索?

Android 如何添加搜索?,android,search,Android,Search,如何在android应用程序中添加搜索功能?我有一个列表视图,我想在其中添加搜索功能。我有代码,但我不知道如何将其与我的应用程序正确集成。代码如下: private ListView listView; List<Dog> dogs = new ArrayList<>(); int dataSize; String[]breed; public Dog listDog = new Dog(); private SearchView searchView; ArrayAda

如何在android应用程序中添加搜索功能?我有一个列表视图,我想在其中添加搜索功能。我有代码,但我不知道如何将其与我的应用程序正确集成。代码如下:

private ListView listView;
List<Dog> dogs = new ArrayList<>();
int dataSize;
String[]breed;
public Dog listDog = new Dog();
private SearchView searchView;
ArrayAdapter<String>adapter = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    searchView = (SearchView)findViewById(R.id.search);
    initInstances();
    setupSearchView();
}

private void initInstances() {

    prepareData();

    ListAdapter adapter = new ListAdapter(MainActivity.this, listDog);
    listView = (ListView) findViewById(R.id.list_item);
    listView.setAdapter(adapter);
    listView.setOnItemClickListener(listViewClickListener);
}

private void setupSearchView() {
    searchView.setIconifiedByDefault(false);
    searchView.setOnQueryTextListener(this);
    searchView.setSubmitButtonEnabled(true);
    searchView.setQueryHint("Искать кота");
}

private void prepareData() {

    int resId[] = {R.drawable.german_shepherd, R.drawable.labrador_retriever, R.drawable.blue_dog, R.drawable.beagle
            , R.drawable.boxer, R.drawable.golden_retriever, R.drawable.poodle, R.drawable.pug, R.drawable.siberian_husky,
            R.drawable.great_dane, R.drawable.german_shepherd, R.drawable.labrador_retriever, R.drawable.blue_dog, R.drawable.beagle
            , R.drawable.boxer, R.drawable.golden_retriever, R.drawable.poodle, R.drawable.pug, R.drawable.siberian_husky,
            R.drawable.great_dane, R.drawable.german_shepherd, R.drawable.labrador_retriever, R.drawable.blue_dog, R.drawable.beagle
            , R.drawable.boxer, R.drawable.golden_retriever, R.drawable.poodle, R.drawable.pug, R.drawable.siberian_husky,
            R.drawable.great_dane, R.drawable.german_shepherd, R.drawable.labrador_retriever, R.drawable.blue_dog, R.drawable.beagle
            , R.drawable.boxer, R.drawable.golden_retriever, R.drawable.poodle, R.drawable.pug, R.drawable.siberian_husky,
            R.drawable.great_dane};

    breed = new String [] {"German shepherd", "Labrador retriever", "Bull dog", "Beagle",
            "Boxer", "Golden retriever", "Poodle", "Pug", "Siberian husky",
            "Great dane", "German shepherd", "Labrador retriever", "Bull dog", "Beagle",
            "Boxer", "Golden retriever", "Poodle", "Pug", "Siberian husky",
            "Great dane", "German shepherd", "Labrador retriever", "Bull dog", "Beagle",
            "Boxer", "Golden retriever", "Poodle", "Pug", "Siberian husky",
            "Great dane", "German shepherd", "Labrador retriever", "Bull dog", "Beagle",
            "Boxer", "Golden retriever", "Poodle", "Pug", "Siberian husky",
            "Great dane"};


    String description[] = {getString(R.string.Юлмарт), getString(R.string.ЮлияСадовая), getString(R.string.Ювелирныймагазин585), getString(R.string.Альфа)
            , getString(R.string.Электромонтаж), getString(R.string.АгрокомплексКарла93), getString(R.string.АгрокомплексКарла363), getString(R.string.ДобрыеСемена), getString(R.string.АгрокомплексКрасная93)
            , getString(R.string.Глобус), getString(R.string.ПланетаДетства), getString(R.string.АгрокомплексКрасная152), getString(R.string.Золушка), getString(R.string.Офискласс118)
            , getString(R.string.СалонцветовLadyFlower), getString(R.string.ДекорЮг), getString(R.string.Глобус), getString(R.string.АгрокомплексКрасная25), getString(R.string.ОфисКласс106)
            , getString(R.string.ПятёрочкаБувальцева26), getString(R.string.БаронДиваноффКрасная1), getString(R.string.Рынок), getString(R.string.Новинтех), getString(R.string.ГлорияДжинс)
            , getString(R.string.ЦифровойсупермаркетDNS), getString(R.string.Евроремонт), getString(R.string.Гейзер), getString(R.string.Нива), getString(R.string.ДвериАдамКомунистическая20)
            , getString(R.string.ЦветыДоставка), getString(R.string.БытКубани), getString(R.string.РынокКореновскоеРАЙПО), getString(R.string.Золушка), getString(R.string.ДинскиеКолбасы)
            , getString(R.string.Цветы), getString(R.string.Тимур), getString(R.string.АгрокомплексКомунистическая20), getString(R.string.АгрокомплексКарла363), getString(R.string.МебельныймагазинРз59)
            , getString(R.string.Изумруд),};
    dataSize = resId.length;
    adapter = new ArrayAdapter<String>(this, R.layout.list_item,breed);

    Log.d("khem", "dataSize " + resId.length);
    Log.d("khem", "breed " + resId.length);
    Log.d("khem", "description " + resId.length);



    for (int i = 0; i < dataSize; i++) {
        Log.d("khem", " " + i);
        Dog dog = new Dog(resId[i], breed[i], description[i]);
        dogs.add(dog);
    }

    listDog.setDogs(dogs);

    //Log.d("khem",listDog);
}

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


public boolean onQueryTextChange(String newText) {
    if (TextUtils.isEmpty(newText)) {
        listView.clearTextFilter();
    } else {
        listView.setFilterText(newText.toString());
    }
    return true;
}

/*************************
 * Listener
 ***************************/

AdapterView.OnItemClickListener listViewClickListener = new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Toast.makeText(MainActivity.this, "POSITION:= " + position,
                Toast.LENGTH_SHORT).show();

        Intent intent = new Intent(MainActivity.this,ShowDetailActivity.class);
        intent.putExtra("resId",listDog.getDogs().get(position).getResId());
        intent.putExtra("breed",listDog.getDogs().get(position).getBreed());
        intent.putExtra("desc",listDog.getDogs().get(position).getDescription());

        startActivity(intent);
    }

};
}
私有ListView ListView;
List dogs=new ArrayList();
int-dataSize;
串[]品种;
公共狗listDog=新狗();
私有搜索视图搜索视图;
ArrayAdapteradapter=null;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
searchView=(searchView)findviewbyd(R.id.search);
initInstances();
setupSearchView();
}
私有void initInstances(){
prepareData();
ListAdapter=新的ListAdapter(MainActivity.this,listDog);
listView=(listView)findViewById(R.id.list\u项);
setAdapter(适配器);
setOnItemClickListener(listViewClickListener);
}
私有void setupSearchView(){
searchView.setIconifiedByDefault(false);
setOnQueryTextListener(这个);
searchView.setSubmitButtonEnabled(true);
searchView.setQueryHint(“БСаааааааааааа;
}
私有无效准备数据(){
int resId[]={R.drawable.german_shepherd,R.drawable.labrador_retriever,R.drawable.blue_dog,R.drawable.beagle
,R.drawable.boxer,R.drawable.golden_retriever,R.drawable.poodle,R.drawable.pug,R.drawable.siberian_husky,
拉布拉多猎犬,拉布拉多猎犬,拉布拉多蓝狗,小猎犬
,R.drawable.boxer,R.drawable.golden_retriever,R.drawable.poodle,R.drawable.pug,R.drawable.siberian_husky,
拉布拉多猎犬,拉布拉多猎犬,拉布拉多蓝狗,小猎犬
,R.drawable.boxer,R.drawable.golden_retriever,R.drawable.poodle,R.drawable.pug,R.drawable.siberian_husky,
拉布拉多猎犬,拉布拉多猎犬,拉布拉多蓝狗,小猎犬
,R.drawable.boxer,R.drawable.golden_retriever,R.drawable.poodle,R.drawable.pug,R.drawable.siberian_husky,
R.drawable.great_dane};
繁殖=新的字符串[]{“德国牧羊犬”、“拉布拉多猎犬”、“斗牛犬”、“小猎犬”,
“拳击手”、“金毛猎犬”、“贵宾犬”、“帕格犬”、“西伯利亚哈士奇犬”,
“大丹狗”、“德国牧羊犬”、“拉布拉多猎犬”、“斗牛犬”、“小猎犬”,
“拳击手”、“金毛猎犬”、“贵宾犬”、“帕格犬”、“西伯利亚哈士奇犬”,
“大丹狗”、“德国牧羊犬”、“拉布拉多猎犬”、“斗牛犬”、“小猎犬”,
“拳击手”、“金毛猎犬”、“贵宾犬”、“帕格犬”、“西伯利亚哈士奇犬”,
“大丹狗”、“德国牧羊犬”、“拉布拉多猎犬”、“斗牛犬”、“小猎犬”,
“拳击手”、“金毛猎犬”、“贵宾犬”、“帕格犬”、“西伯利亚哈士奇犬”,
“大丹人”};
字符串描述[]={getString(R.String.ЮМЮЮ)、getString(R.String.ЮЮСЮЮ)、getString(R.String
,getString(R.string.Бииж)、getString(R.string.Аааааа)、getString(R.string.Аааааааааааа93)、getString(R.string.Аааааааааа
,getString(R.string.ГббС)、getString(R.string.Пааааааааааа)、getString(R.string.Ааааааааааа107
,getString(R.string.СааааЮ花),getString(R.string.ГбаааСаа花),getString(R.string.СааааааС)、getString(R.string.Ааааа
,getString(R.string.Пааааааааааааа26),getString(R.string.Баааааааа1),getString(R.string.(*.ажааааа
,getString(R.string.Бфааааааа)DNS),getString(R.string.Уааа)、getString(R.string.Баааааа)20)
,getString(R.string.Бцццааа)、getString(R.string.Бцааа)、getString
,getString(R.string.Быыыыыыыыыыыыыыыыыыыыыызз),getString
,getString(R.string.Пзззззз),};
数据大小=剩余长度;
适配器=新阵列适配器(此,右布局。列表项,品种);
Log.d(“khem”,“数据大小”+剩余长度);
对数d(“khem”、“品种”+剩余长度);
对数d(“khem”,“说明”+剩余长度);
对于(int i=0;iEditText grabResults;
grabResults.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) {


                adapter.getFilter().filter(s);

        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });   
adapter.getFilter().filter(s);