当前位置:首页 » 安卓系统 » android搜索提示

android搜索提示

发布时间: 2022-11-19 06:18:07

㈠ 请教android的EditText怎么实现类似搜索引擎的输入提示

那就是用AutoCompleteTextView这个控件 它要绑定一个adapter下拉列表的适配器和数据 具用法你自己看android的api吧

㈡ Android的搜索框怎么加入提示文字

首先引入一下jquery。
然后通过jquery选择器绑定单击事件
给文献检索这一项加一个ID 比如 <li id="book">文献检索</li>
$('#book').click(function(){
$this.css('color','blue') //点击变蓝

window.location = 'www..com'//跳转到网络界面

㈢ Android如何实现百度搜索栏的下拉提示效果啊求组 急!

这是一种类似搜索引擎索引的提示方式,要么自己做一套,要么使用共用的,简单一点的话,在数据库用模糊搜索也可以~~

㈣ 请教android的EditText怎么实现类似搜索引擎的输入提示

Android中有个控件叫AutoCompleteTextview就是用于输出过虑下拉显示用的控件.类似搜索引擎中的输入提示的功能.

㈤ android怎么使用SearchView啊

SearchView即时搜索提示功能,主要实现如下:
layout布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<SearchView
android:id="@+id/search_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:iconifiedByDefault="true"
android:inputType="textCapWords"
android:imeOptions="actionSearch"
android:queryHint="" />
</RelativeLayout>

xml中主要配置有四个属性,如下:
android:iconifiedByDefault表示搜索图标是否在输入框内。true效果更加
android:imeOptions设置IME options,即输入法的回车键的功能,可以是搜索、下一个、发送、完成等等。这里actionSearch表示搜索
android:inputType输入框文本类型,可控制输入法键盘样式,如numberPassword即为数字密码样式
android:queryHint输入框默认文本

SearchView的几个主要函数
setOnCloseListener(SearchView.OnCloseListener listener)表示点击取消按钮listener,默认点击搜索输入框
setOnQueryTextListener(SearchView.OnQueryTextListener listener)表示输入框文字listener,包括public boolean onQueryTextSubmit(String query)开始搜索listener,public boolean onQueryTextChange(String newText)输入框内容变化listener,两个函数

java部分实现:
package cn.trinea.android.demo;

import java.util.concurrent.Executors;
import java.util.concurrent.ScheledExecutorService;
import java.util.concurrent.ScheledFuture;
import java.util.concurrent.TimeUnit;

import android.app.ActionBar;
import android.app.ActionBar.LayoutParams;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.WindowManager;
import android.widget.SearchView;
import android.widget.SearchView.OnCloseListener;
import android.widget.Toast;
public class SearchViewDemo extends Activity {
private SearchView searchView;
private Context context;
private MyHandler handler;
// schele executor
private ScheledExecutorService scheledExecutor = Executors.newScheledThreadPool(10);
private String currentSearchTip;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search_view_demo);
context = getApplicationContext();
handler = new MyHandler();
ActionBar actionBar = getActionBar();
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_HOME_AS_UP
| ActionBar.DISPLAY_SHOW_CUSTOM);
setTitle(" ");
LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View customActionBarView = inflater.inflate(R.layout.search_view_demo_title, null);
searchView = (SearchView)customActionBarView.findViewById(R.id.search_view);
searchView.setIconified(false);
searchView.setOnCloseListener(new OnCloseListener() {
@Override
public boolean onClose() {
// to avoid click x button and the edittext hidden
return true;
}
});
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
public boolean onQueryTextSubmit(String query) {
Toast.makeText(context, "begin search", Toast.LENGTH_SHORT).show();
return true;
}
public boolean onQueryTextChange(String newText) {
if (newText != null && newText.length() > 0) {
currentSearchTip = newText;
showSearchTip(newText);
}
return true;
}
});
LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT, Gravity.CENTER_VERTICAL
| Gravity.RIGHT);
actionBar.setCustomView(customActionBarView, params);
// show keyboard
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE | WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
}
public void showSearchTip(String newText) {
// excute after 500ms, and when excute, judge current search tip and newText
schele(new SearchTipThread(newText), 500);
}
class SearchTipThread implements Runnable {
String newText;
public SearchTipThread(String newText){
this.newText = newText;
}
public void run() {
// keep only one thread to load current search tip, u can get data from network here
if (newText != null && newText.equals(currentSearchTip)) {
handler.sendMessage(handler.obtainMessage(1, newText + " search tip"));
}
}
}
public ScheledFuture<?> schele(Runnable command, long delayTimeMills) {
return scheledExecutor.schele(command, delayTimeMills, TimeUnit.MILLISECONDS);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home: {
onBackPressed();
return true;
}
}
return false;
}
private class MyHandler extends Handler {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
Toast.makeText(context, (String)msg.obj, Toast.LENGTH_SHORT).show();
break;
}
}
}
}
上面代码在onQueryTextChange函数即输入框内容每次变化时将一个数据获取线程SearchTipThread放到ScheledExecutorService中,500ms后执行,在线程执行时判断当前输入框内容和要搜索内容,若相等则继续执行,否则直接返回,避免不必要的数据获取和多个搜索提示同时出现。

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE
| WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
表示默认输入法弹出

编辑框内容为空点击取消的x按钮,编辑框收缩,可在onClose中返回true

Java

1
2
3
4
5
6
7

searchView.setOnCloseListener(new OnCloseListener() {

@Override
public boolean onClose() {
return true;
}
});

searchView.onActionViewExpanded();表示在内容为空时不显示取消的x按钮,内容不为空时显示.
searchView.setSubmitButtonEnabled(true);编辑框后显示search按钮,个人建议用android:imeOptions=”actionSearch”代替。
隐藏输入法键盘
InputMethodManager inputMethodManager;
inputMethodManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);

private void hideSoftInput() {
if (inputMethodManager != null) {
View v = SearchActivity.this.getCurrentFocus();
if (v == null) {
return;
}
inputMethodManager.hideSoftInputFromWindow(v.getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);
searchView.clearFocus();
}
}

其中SearchActivity为Activity的类名

㈥ android 一般 搜索框 是用searchview 吗

1、SearchView是搜索框组件,它可以让用户在文本框里输入文字,通过监听器取得用户的输入,当用户点击搜索时,监听器执行实际的搜索。 2、SearchView组件的常用方法如下: ①setIconifiedByDefault(boolean iconified) ===> 设置搜索框默认是否自动缩小为图标。 ②setOnQueryTextListener(SearchView,OnQueryTextListener listener) ===> 为搜索框设置监听器 ③setSubmitButtonEnabled(boolean enabled) ===> 设置是否显示搜索按钮 ④setQueryHint(CharSequence hint) ===> 设置搜索框内的默认显示的提示文本 3、为SearchView增加一个配套的ListView,则可以为其增加自动完成的功能,即ListView用于为SearchView显示自动补齐列表 4、具体实现代码如下: package org.crazyit.ui; import android.os.Bundle; import android.text.TextUtils; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.SearchView; import android.widget.Toast; import android.app.Activity; public class SearchViewTest extends Activity implements SearchView.OnQueryTextListener { private SearchView sv; private ListView lv; // 自动完成的列表 private final String[] mStrings = { "aaaaa", "bbbbbb", "cccccc", "ddddddd" }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); lv = (ListView) findViewById(R.id.lv); lv.setAdapter(new ArrayAdapter<string>(this,android.R.layout.simple_list_item_1, mStrings)); lv.setTextFilterEnabled(true);//设置lv可以被过虑 sv = (SearchView) findViewById(R.id.sv); // 设置该SearchView默认是否自动缩小为图标 sv.setIconifiedByDefault(false); // 为该SearchView组件设置事件监听器 sv.setOnQueryTextListener(this); // 设置该SearchView显示搜索按钮 sv.setSubmitButtonEnabled(true); // 设置该SearchView内默认显示的提示文本 sv.setQueryHint("查找"); } // 用户输入字符时激发该方法 @Override public boolean onQueryTextChange(String newText) { Toast.makeText(SearchViewTest.this, "textChange--->" + newText, 1).show(); if (TextUtils.isEmpty(newText)) { // 清除ListView的过滤 lv.clearTextFilter(); } else { // 使用用户输入的内容对ListView的列表项进行过滤 lv.setFilterText(newText); } return true; } // 单击搜索按钮时激发该方法 @Override public boolean onQueryTextSubmit(String query) { // 实际应用中应该在该方法内执行实际查询 // 此处仅使用Toast显示用户输入的查询内容 Toast.makeText(this, "您的选择是:" + query, Toast.LENGTH_SHORT).show(); return false; } } </string>

㈦ android应用中的搜索功能怎么实现的

在APP应用中启用搜索
在app应用中,至少要执行如下的三个步骤,才能让app应用能够进行检索。如果要提供搜索建议,还需要执行第4步:
编写搜索配置的XML文件
编写搜索的activity类
在Android的manifest.xml文件中,对两面两个步骤的工作进行配置。
如果要使用搜索建议,则需要增加一个contentprovider。
配置搜索的XML配置文件
首先看下如何配置搜索的XML配置文件。先命名配置文件名称为searchable.xml,保存在res/xml文件夹中。然后需要设置搜索框的文本,并且应该增加一个hint的提示文本信息,如下代码所示:
<searchable xmlns:android="http://schemas.android.com/apk/res/android" android:label="@string/search_label"> android:hint="@string/search_hint" </searchable>

关于搜索配置文件有很多的配置选项,建议参考Android的手册可以获得更多:
http://developer.android.com/guide/topics/search/searchable-config.html。
增加搜索的Activity
当用户进行搜索时,Android调用activity进行搜索,代码如下:
publicclass SampleSearchActivity extends ListActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); handleIntent(getIntent()); }public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); handleIntent(getIntent()); } public void onNewIntent(Intent intent) { setIntent(intent); handleIntent(intent); } public void onListItemClick(ListView l, View v, int position, long id) { // 点每个搜索结果时的处理代码 } private void handleIntent(Intent intent) { if (Intent.ACTION_SEARCH.equals(intent.getAction())) { String query = intent.getStringExtra(SearchManager.QUERY); doSearch(query); } } private void doSearch(String queryStr) { //执行真正的查询结果处理 } }

在上面的代码中,在handleIntent方法中,当按下搜索按钮,系统就会自动发送Intent,action是Intent.ACTION_SEARCH,然后通过intent.getStringExtra(SearchManager.QUERY);获得要搜索的字符串。
其中为什么要包含onNewIntent()方法呢?主要是因为Android的back后退机制。Android会默认把每一个新的activity放到activity栈的顶部。如果用户点了后退键,则会关闭栈顶部的activity。尝试考虑一种情况,用户搜索一个内容并且系统列出了结果,如果用户发现结果不是他所要的,或者希望重新检索,则会重新点击搜索按键,这样将会产生一个新的搜索activity的实例,在activity栈中就会有两个搜索的activity,这是开发者并不期待的,所以,需要将这个搜索的activity声明为singleTop类型的activity,这样的话,无论用户按返回键还是尽心个多次的搜索,在acitivty栈中始终保持的是一个搜索activity的实例。因为当activity被设置为singleTop的加载模式时,如果堆栈的顶部已经存在了该Activity,那么,它便不会重新创建,而是调用onNewIntent。如果,该Activity存在,但不是在顶部,那么该Activity依然要重新创建。
mainifest配置文件
接下来,需要对manifest配置文件进行配置,必须要对其中进行如下配置:
搜索的activity.
使用搜索的intent
activity启动模式
searchable.xml中的元数据
更多的定义搜索的元数据
下面是典型的一个搜索的配置
<application android:icon="@drawable/icon" android:label="@string/app_name" android:name=".YourApp" > <meta-data android:name="android.app.default_searchable" android:value=".YourSearchActivity" /> <activity android:label="@string/app_name" android:launchMode="singleTop" android:name=".YourSearchActivity" > <intent-filter > <action android:name="android.intent.action.SEARCH" /> </intent-filter> <intent-filter > <action android:name="android.intent.action.VIEW" /> </intent-filter> <meta-data android:name="android.app.searchable" android:resource="@xml/searchable" /> </activity> </application>

在上面的典型配置中,要注意如下几点:
1)由于当调用搜索activity时,Android调用的是android.intent.action.SEARCH作为搜索的intent,所以必须在intent-filter中包含android.intent.action.SEARCH。
2)在<meta-data>中,指出了searchable.xml的位置
3)同样在<meta-data>中,通过:
<meta-data android:name="android.app.default_searchable" android:value=".YourSearchActivity" />

指出了当执行搜索的字符串提交时,将调用哪一个activity去进行处理。

㈧ Android如何实现百度搜索栏的下拉提示效果啊求组 急!

用一个TextWatcher监听,然后若有匹配的自定义一个下拉,并显示

㈨ 怎么使用android软件的搜索功能

当你需要在你的应用程序中提供搜索服务时,通过使用Android的搜索框架,应用程序将显示一个自定义搜索对话框来处理用户的搜索请求。通过一个简单的搜索按钮或从您的应用程序中调用API,搜索对话框就会显示在屏幕的顶部,并会自动显示应用程序图标。

本文将教你如何为你的应用程序提供一个自定义搜索对话框。这样做,给您的用户提供一个标准化的搜索体验,并能增加如语音搜索和搜索建议等功能。

基础知识

Android的搜索框架将代您管理的搜索对话框,您不需要自己去开发一个搜索框,不需要担心要把搜索框放什么位置,也不需要担心搜索框影响您当前的界面。所有的这些工作都由SearchManager类来为您处理(以下简称“搜索管理器”),它管理的Android搜索对话框的整个生命周期,并执行您的应用程序将发送的搜索请求,返回相应的搜索关键字。

当用户执行一个搜索,搜索管理器将使用一个专门的Intent把搜索查询的关键字传给您在配置文件中配置的处理搜索结果的Activity。从本质上讲,所有你需要的就是一个Activity来接收Intent,然后执行搜索,并给出结果。具体来说,你需要的做的事就包括以下内容:

一个搜索配置
我们用个XML配置文件来对搜索对话框进行配置,包括一些功能的配置,如文本框,设置语音搜索和搜索建议中显示的提示文字等。

一个用来处理搜索请求的Activity
这个Activity用来接收搜索查询的内容,然后搜索您的数据并显示搜索结果。

一种用户执行搜索的途径
默认情况下,一旦你配置了一个可搜索的Activity,设备搜索键(如果有)将调用搜索对话框。然而,你应该始终提供另一种手段,让用户可以调用搜索对话框,如在选项菜单中的搜索按钮或其他用户界面上的按钮,因为不是所有的设备提供一个专门的搜索键。

创建一个搜索对话框配置文件

搜索框配置文件是一个用来配置您的应用程序中搜索框的设置的XML文件,这个文件一般命名为searchable.xml,并且必须保存在项目的res/xml/目录下。

配置文件的根节点必须为,可以有一个或多个属性。

㈩ Android中如何让一个EditView被点击后出现搜索框,搜索框已经实现

Android有自带的一个控件AutoCompleteTextView

具体用法如下:

main.xml代码如下:

<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">

<AutoCompleteTextView
android:id="@+id/autoCompleteTextView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:completionHint="请选择你喜欢的歌曲"
android:completionThreshold="1"
android:dropDownHorizontalOffset="20dp"
android:ems="10"
android:text="AutoCompleteTextView">

<requestFocus/>
</AutoCompleteTextView>

</LinearLayout>

java代码为:

importandroid.app.Activity;
importandroid.graphics.Bitmap;
importandroid.graphics.BitmapFactory;
importandroid.graphics.drawable.BitmapDrawable;
importandroid.os.Bundle;
importandroid.view.MotionEvent;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.view.View.OnTouchListener;
importandroid.widget.ArrayAdapter;
importandroid.widget.AutoCompleteTextView;
importandroid.widget.Button;
importandroid.widget.ImageView;

{

//定义字符串数组作为提示的文本
String[]books=newString[]{"rollen","rollenholt","rollenren","roll"};

@Override
protectedvoidonCreate(BundlesavedInstanceState){
//TODOAuto-generatedmethodstub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

//创建一个ArrayAdapter封装数组
ArrayAdapter<String>av=newArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line,books);
AutoCompleteTextViewauto=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1);
auto.setAdapter(av);
}
}
热点内容
linux命令全称 发布:2024-05-17 12:07:54 浏览:109
ftpnas区别 发布:2024-05-17 12:06:18 浏览:948
512g存储芯片价格 发布:2024-05-17 12:04:48 浏览:962
脚本运行周期 发布:2024-05-17 11:39:09 浏览:808
阿里云服务器怎么配置发信功能 发布:2024-05-17 11:37:24 浏览:312
编程中的变量 发布:2024-05-17 11:33:06 浏览:777
加密视频怎么解密 发布:2024-05-17 11:02:52 浏览:571
柳工挖机密码多少合适 发布:2024-05-17 11:00:40 浏览:188
android工程叹号 发布:2024-05-17 10:56:21 浏览:481
在苹果手机应用怎么比安卓贵 发布:2024-05-17 10:56:20 浏览:548