android搜索框功能实现 您所在的位置:网站首页 搜索页面代码怎么弄 android搜索框功能实现

android搜索框功能实现

2023-07-14 08:36| 来源: 网络整理| 查看: 265

这里实现的是搜索框时时查询,代码中是在数据库中使用的模糊查询;

整个布局使用的是线性布局,搜索框又是一个线性布局(里面包含一个相对布局和一个TextView,相对布局里面有一个EditText和ImageVIew),下面是一个ListView;

搜索框其实就是一个EditText,背景是用shape自己画出来的;上面放一个“删除”的图片;

 

在Activity中给EditText设置一个监听,当输入文字的时候获取输入的内容然后查询数据库,将查询到的数据展示到ListView中;

 

线来看下布局:

 

CharSequence s, int start, int before, int count(CharSequence s, int start, int before, int count)方法中做判断,s是EditText中的文本内容;

 

 

 

判断如果s长度为0隐藏“删除”图片,否则显示“删除图片”,显示ListView,查询数据库获得Cursor获得CursorAdapter将内容展示到ListView中;

 

public class MainActivity extends Activity { private EditText mEditText; private ImageView mImageView; private ListView mListView; private TextView mTextView; Context context; Cursor cursor; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); context = this; initView(); } private void initView() { mTextView = (TextView) findViewById(R.id.textview); mEditText = (EditText) findViewById(R.id.edittext); mImageView = (ImageView) findViewById(R.id.imageview); mListView = (ListView) findViewById(R.id.listview); //设置删除图片的点击事件 mImageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //把EditText内容设置为空 mEditText.setText(""); //把ListView隐藏 mListView.setVisibility(View.GONE); } }); //EditText添加监听 mEditText.addTextChangedListener(new TextWatcher() { public void beforeTextChanged(CharSequence s, int start, int count, int after) {}//文本改变之前执行 @Override //文本改变的时候执行 public void onTextChanged(CharSequence s, int start, int before, int count) { //如果长度为0 if (s.length() == 0) { //隐藏“删除”图片 mImageView.setVisibility(View.GONE); } else {//长度不为0 //显示“删除图片” mImageView.setVisibility(View.VISIBLE); //显示ListView showListView(); } } public void afterTextChanged(Editable s) { }//文本改变之后执行 }); mTextView.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { //如果输入框内容为空,提示请输入搜索内容 if(TextUtils.isEmpty(mEditText.getText().toString().trim())){ ToastUtils.showToast(context,"请输入您要搜索的内容"); }else { //判断cursor是否为空 if (cursor != null) { int columnCount = cursor.getCount(); if (columnCount == 0) { ToastUtils.showToast(context, "对不起,没有你要搜索的内容"); } } } } }); } private void showListView() { mListView.setVisibility(View.VISIBLE); //获得输入的内容 String str = mEditText.getText().toString().trim(); //获取数据库对象 MyOpenHelper myOpenHelper = new MyOpenHelper(getApplicationContext()); SQLiteDatabase db = myOpenHelper.getReadableDatabase(); //得到cursor cursor = db.rawQuery("select * from lol where name like '%" + str + "%'", null); MyListViewCursorAdapter adapter = new MyListViewCursorAdapter(context, cursor); mListView.setAdapter(adapter); mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { //把cursor移动到指定行 cursor.moveToPosition(position); String name = cursor.getString(cursor.getColumnIndex("name")); ToastUtils.showToast(context, name); } }); } }

源码下载地址

 

 

 

 

 

  

 

 

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有