android搜索框功能实现_简单的搜索框代码实现

45d344f8085c87bea8590f4716f0f159.png

简单的搜索框页面功能的实现(代码如下)

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<base href="<%=basePath%>">

<title>My JSP 'search.jsp' starting page</title>

<!-- 引入jQuery文件 -->

<script type="text/javascript" src = "js/j.js"></script>

<!-- 声明js代码域 -->

<script type="text/javascript">

//声明计数变量

var count=-1;

//声明变量记录定时执行的编码

var id;

//页面加载成功时完成页面资源的初始化

$(function(){

//给搜索框添加键盘弹起事件

$("#search").keyup(function(event){

//声明正则表达式判断空格

var reg = /^s+$/g;

//获取event对象

var eve = window.event||event;

//获取用户当前点击的键盘键的键盘值

var code = eve.keyCode;

if((code>=65&&code<=90)||code==8 ||code==32){

//获取当前搜索框中的数据

var sd = $("#search").val();

if(sd==""||reg.test(sd)){

return;

}

//清除之前将要发送的请求数据

window.clearTimeout(id);

//设置请求延迟发送

id =window.setTimeout(function(){

//发起ajax请求,请求当前用户搜索框数据的提示信息

$.get("search",{sdata:sd},function(data){

//转成js对象

eval("var sd="+data);

//将获取到的数据插入到提示框的div中

//获取提示框对象

var dataDiv = $("#dataDiv");

//清空原有数据

dataDiv.empty();

if(sd.length>0){

//显示div

dataDiv.css("display","");

}

//遍历

for(var i=0;i<sd.length;i++){

dataDiv.append("<div style='padding:5px;'>"+sd[i].title+"</div>");

}

//给提示框中的div增加鼠标选择的效果

$("#dataDiv div").mouseover(function(){

//清空提示框中div的颜色

$("#dataDiv div").css("background-color","");

//给鼠标悬停的div增加颜色

$(this).css("background-color","gray");

//实现鼠标和键盘的联动

count = $(this).index();

});

//给提示框中的div增加单击事件,用来选择提示语

$("#dataDiv div").click(function(){

$("#search").val($(this).html());

//当单击选择完后,提示框的div隐藏

$("#dataDiv").css("display","none");

});

});

},500);

}

//判断用户点击的是否是键盘的下键

if(code==40){

//判断是否有提示语

if($("#dataDiv div").length>0){

count =(count<$("#dataDiv div").length-1?++count:0);

//清空原有样式

$("#dataDiv div").css("background-color","");

//给下键选择的div添加颜色

$("#dataDiv div:eq("+count+")").css("background-color","gray");

}

}

//判断用户点击的是否是键盘的上键

if(code==38){

//判断是否有提示语

if($("#dataDiv div").length>0){

count =(count>0?--count:$("#dataDiv div").length-1);

//清空原有样式

$("#dataDiv div").css("background-color","");

//给下键选择的div添加颜色

$("#dataDiv div:eq("+count+")").css("background-color","gray");

}

}

});

});

</script>

</head>

<body>

<!-- 添加一个大的div容器使搜索框div和提示框div在一起 -->

<div id="container" style="width: 450px;margin: auto;">

<!-- 搜索框的div -->

<div id="sdiv" style="width: 450px; margin: auto;margin-top: 160px;">

<input type="text" name="search" id="search" value="" style="width: 300px;height: 30px;font-size: 16px;"/>

<input type="button" value="搜索" style="width: 50px;height: 30px"/>

</div>

<!-- 提示框的div -->

<div id="dataDiv" style="width: 298px;height: 250px; border: 1px solid;border-top: none; display: none;"></div>

</div>

</body>

</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Android实现搜索框功能,你可以使用 Android 提供的 SearchView 控件。以下是一些基本步骤: 1. 在布局文件中添加 SearchView 控件: ``` <SearchView android:id="@+id/search_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:iconifiedByDefault="false" android:queryHint="Search..."> </SearchView> ``` 2. 在 Activity 或 Fragment 中获取 SearchView 控件的实例,并设置相关监听器: ``` SearchView searchView = findViewById(R.id.search_view); searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { // 处理搜索结果 return false; } @Override public boolean onQueryTextChange(String newText) { // 处理搜索框文本改变的事件 return false; } }); ``` 在 `onQueryTextSubmit` 方法中可以处理搜索结果,而在 `onQueryTextChange` 方法中可以处理搜索框文本改变的事件。 3. 如果你需要在 ActionBar 中显示 SearchView,可以使用以下代码: ``` @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.search_menu, menu); MenuItem searchItem = menu.findItem(R.id.action_search); SearchView searchView = (SearchView) searchItem.getActionView(); searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { // 处理搜索结果 return false; } @Override public boolean onQueryTextChange(String newText) { // 处理搜索框文本改变的事件 return false; } }); return true; } ``` 这里假设你已经在菜单文件中定义了一个带有搜索项的菜单,并将其关联到了 Activity 或 Fragment。 以上是一个简单搜索框功能实现的示例,你可以根据自己的需求进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值