Android 原生控件 1 SearchView

本文介绍了Android原生控件SearchView,主要讨论其在处理用户输入中的作用。通过示例展示了SearchView的效果,并探讨了相关的方法,为Android应用开发中的搜索功能提供实现指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;
        }
    });
}
//提价查询的时候调用
@Override
public boolean onQueryTextSubmit(String query) {
    Log.d(TAG, "onQueryTextSubmit: "+query);
    return true;//返回true自己处理查询的文本
}
//当输入框查询的文本改变是调用
@Override
public boolean onQueryTextChange(String newText) {
    Log.d(TAG, "onQueryTextChange: "+newText);
    return false;//false执行默认的动作
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值