Android 原生控件 1 SearchView

来源:互联网 发布:软件需求分析培训 编辑:程序博客网 时间:2024/06/07 05:14

SearchView 看名字也能知道是干什么用的,主要是处理用户的输入。

效果

g

该类的方法

//OnQueryTextListener 输入文本监听 复写方法  boolean onQueryTextSubmit(String query);和boolean onQueryTextChange(String newText);//boolean onQueryTextSubmit(String query) 当用户提交查询时调用 参数是提交查询的文本 返回结果为true,表示监听器处理查询结果,false执行SearchView默认动作//boolean onQueryTextChange(String newText);当输入框的查询文本改变时调用 参数用户输入的新文本,返回false执行默认动作,true监听器处理查询结果//OnCloseListener查询输入框关闭监听 复写方法 onClose() 返回true清除查询字段 取消//OnSuggestionListener  复写  boolean onSuggestionSelect(int position);和boolean onSuggestionClick(int position);方法//boolean onSuggestionSelect(int position);当下拉列表被选中添加到导航时调用,参数是下拉列表的索引//boolean onSuggestionClick(int position);当点击一个选项时调用,点击列表的索引//public void setInputType(int inputType)设置输入类型// public CharSequence getQuery()返回查询的文本//public void setQuery(CharSequence query, boolean submit) 设置查询文本,参数1:文本,参数2:是否提交//public void setQueryHint(@Nullable CharSequence hint) 设置查询提示文本// public CharSequence getQueryHint() 获取查询文本提示// public void setIconifiedByDefault(boolean iconified)、、设置搜索图标是否显示//public boolean isIconfiedByDefault()//public void setSubmitButtonEnabled(boolean enabled) 设置正在输入的时候显示提交按钮//public boolean isSubmitButtonEnabled()//public void setSuggestionsAdapter(CursorAdapter adapter)数据列表适配器
xml中使用
<android.support.v7.widget.SearchView    android:id="@+id/searchview"    android:background="@drawable/bg_shape_hot_tv"    android:layout_centerHorizontal="true"    android:layout_width="match_parent"    android:layout_height="35dp"/>

上面的方法大部分都可以在xml文件中设置
android:maxWidth="300dp"
android:queryHint="你好"
 mSearchView = (SearchView) findViewById(R.id.searchview);   // searchView.setInputType(InputType.TYPE_CLASS_NUMBER);//设置输入类型   // searchView.setQuery("查询文本",false);//设置查询文本 是否提交    mSearchView.setQueryHint("查询数据库电话字段");//设置查询提示文本    //searchView.setIconifiedByDefault(false);//设置搜索图标是否显示   mSearchView.setSubmitButtonEnabled(true);//设置显示提交按钮    //输入文本监听    mSearchView.setOnQueryTextListener(this);    //adapter.changeCursor(cursor)相当于adapter.notifyDataSetChanged()方法    //查询数据库得到Cursor    SQLiteDatabase db = mSqlitopen.getReadableDatabase();    final Cursor cursor = db.query("demo", null, null, null, null, null, null);    mAdapter = new MyAdapter(this,cursor,1);    mSearchView.setSuggestionsAdapter(mAdapter);//设置数据适配器    //下拉列表选择监听    mSearchView.setOnSuggestionListener(new SearchView.OnSuggestionListener() {        //当列表被选择兵添加到搜索框中调用        @Override        public boolean onSuggestionSelect(int position) {            Toast.makeText(MainActivity.this,"选择的列表是位置"+position,Toast.LENGTH_LONG).show();            return true;        }        //点击一个选项时调用        @Override        public boolean onSuggestionClick(int position) {            Toast.makeText(MainActivity.this,"点击列表是位置"+position,Toast.LENGTH_LONG).show();            mSearchView.setQuery(mAdapter.getQueryText(),true);            return true;        }    });}//提价查询的时候调用@Overridepublic boolean onQueryTextSubmit(String query) {    Log.d(TAG, "onQueryTextSubmit: "+query);    return true;//返回true自己处理查询的文本}//当输入框查询的文本改变是调用@Overridepublic boolean onQueryTextChange(String newText) {    Log.d(TAG, "onQueryTextChange: "+newText);    return false;//false执行默认的动作}



0 0
原创粉丝点击