zoukankan      html  css  js  c++  java
  • Android 中 SearchView

    package com.example.euphemiaxiao.classsearch;
    
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    //import android.support.v7.widget.SearchView;
    import android.widget.SearchView;
    import android.text.TextUtils;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    
    public class ClassSearch extends AppCompatActivity implements SearchView.OnQueryTextListener{
    
        private SearchView sv;
        private ListView lv;
        private ArrayAdapter<String> adapter;
        private final String[] mStrings={"2014211501","2014211502","2014211503","2014211504",
                                         "2015211501","2015211502","2015211503","2015211504"};
        //private ArrayList<String> alist;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.class_search);
            lv=(ListView)findViewById(R.id.lv);
            adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,mStrings);
            lv.setAdapter(adapter);
           // lv.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,mStrings));
            lv.setTextFilterEnabled(true);//设置lv可以被过滤
            sv=(SearchView)findViewById(R.id.sv);
            sv.setIconifiedByDefault(false);//设置该searchview默认不自动缩小为图标
            sv.setOnQueryTextListener(this);//设置事件监听器
            sv.setSubmitButtonEnabled(true);//设置显示搜索按钮
            sv.setQueryHint("输入班号");//设置默认显示文字
    
        }
    
        //单击搜索按钮时激发该方法
        @Override
        public boolean onQueryTextSubmit(String query) {
            return false;
        }
    
        //用户输入字符时激发该方法
        @Override
        public boolean onQueryTextChange(String newText) {
            if(TextUtils.isEmpty(newText))
            {//清除ListView的过滤
                lv.clearTextFilter();
            }
            else
            {//使用用户输入的内容对ListView的列表项进行过滤
                lv.setFilterText(newText);
            }
            return false;
        }
    }

    上面是classsearch代码

     
    关于listview,开始报错在ArrayAdapter<String>,错误是指向空指针。这里报错的主要原因来源于setContentView(R.layout.class_search),因为引向的不对所以理所应当调用一直是空指针。一定要看准你所调用的layout是哪个。之前有两个layout,引用错误导致一直报错,后来本人急性子,直接删除了另外一个,才发现这里的错误,写成另一个layout了。
     
    关于searchview,报错在sv=(SearchView)findViewById(R.id.sv),错误是:

    android.widget.SearchView cannot be cast to android.support.v7.widget.SearchView

     
    这个错误的解决是import android.support.v7.widget.SearchView
    改成import android.widget.SearchView就解决了(虽然并不知道为神马)
  • 相关阅读:
    网页布局色块
    多物体运动
    elasticsearch基础命令
    mysiam,innodb
    git常用命令
    redis内存淘汰机制
    PHP运行模式
    MySQL主从延迟
    ip、uv、pv
    缓存出现的几种情况
  • 原文地址:https://www.cnblogs.com/xym4869/p/8475977.html
Copyright © 2011-2022 走看看