android搜索框布局文件,自定义超简单SearchView搜索框

该博客主要展示了如何在Android应用中实现一个搜索功能,包括使用EditText进行文本输入,监听文本变化以显示或隐藏清空搜索框的按钮,以及设置按钮点击事件清除搜索内容。此外,还详细说明了EditText的onKeyListener用于监听键盘回车事件,展示搜索结果的 Toast 提示。

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

先看效果图

26c935f0f363e5a38ebfbe9de06da261.png

Java代码:

import android.os.Bundle;

import android.text.Editable;

import android.text.TextWatcher;

import android.view.KeyEvent;

import android.view.View;

import android.view.View.OnClickListener;

import android.view.View.OnKeyListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.LinearLayout;

import android.widget.Toast;

import android.app.Activity;

public class MainActivity extends Activity {

private EditText mEtSearch = null;// 输入搜索内容

private Button mBtnClearSearchText = null;// 清空搜索信息的按钮

private LinearLayout mLayoutClearSearchText = null;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mEtSearch = (EditText) findViewById(R.id.et_search);

mBtnClearSearchText = (Button) findViewById(R.id.btn_clear_search_text);

mLayoutClearSearchText = (LinearLayout) findViewById(R.id.layout_clear_search_text);

mEtSearch.addTextChangedListener(new TextWatcher() {

@Override

public void onTextChanged(CharSequence s, int start, int before,

int count) {

}

@Override

public void beforeTextChanged(CharSequence s, int start, int count,

int after) {

}

@Override

public void afterTextChanged(Editable s) {

int textLength = mEtSearch.getText().length();

if (textLength > 0) {

mLayoutClearSearchText.setVisibility(View.VISIBLE);

} else {

mLayoutClearSearchText.setVisibility(View.GONE);

}

}

});

mBtnClearSearchText.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

mEtSearch.setText("");

mLayoutClearSearchText.setVisibility(View.GONE);

}

});

mEtSearch.setOnKeyListener(new OnKeyListener() {

@Override

public boolean onKey(View arg0, int keyCode, KeyEvent event) {

if (keyCode == KeyEvent.KEYCODE_ENTER) {

Toast.makeText(MainActivity.this,

mEtSearch.getText().toString().trim(),

Toast.LENGTH_LONG).show();

}

return false;

}

});

}

}

布局文件

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical">

android:layout_width="fill_parent"

android:layout_height="50dp"

android:layout_marginTop="5dp"

android:layout_marginLeft="20dp"

android:layout_marginRight="12dp"

android:background="@drawable/shape_search_app_bg_yj"

android:orientation="horizontal">

android:id="@+id/et_search"

android:layout_weight="4"

android:layout_width="0dp"

android:layout_height="fill_parent"

android:imeOptions="actionSearch"

android:layout_marginLeft="10dp"

android:textColor="#0e0e0e"

android:textSize="17sp"

android:singleLine="true"

android:hint="搜索"

android:textColorHint="#b0c6ce"

android:gravity="center_vertical"

android:drawableLeft="@drawable/ic_search_app_left"

android:background="@null"/>

android:id="@+id/layout_clear_search_text"

android:layout_weight="0.5"

android:layout_width="0dp"

android:layout_height="fill_parent"

android:visibility="gone"

android:orientation="horizontal">

android:id="@+id/btn_clear_search_text"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="right|center_vertical"

android:background="@drawable/selector_btn_search_clear_text_right"

/>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值