如何在Android应用程序中添加搜索选项?

时间:2011-07-18 09:11:17

标签: android search

我正在android中开发一个Android应用程序,我想使用搜索选项,我可以从Web服务或数据库中搜索特定数据项?

4 个答案:

答案 0 :(得分:3)

创建名为list_item.xml的XML文件并将其保存在res / layout /文件夹中。编辑文件如下所示:

 ?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="16sp"
android:textColor="#000">
</TextView>

<强> main.xml中

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="horizontal"
android:layout_width="fill_parent" 
android:layout_height="wrap_content"
android:padding="5dp">
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Country" />
<AutoCompleteTextView android:id="@+id/autocomplete_country"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="5dp"/>
</LinearLayout>

java

 @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

  AutoCompleteTextView textView = (AutoCompleteTextView)  findViewById(R.id.autocomplete_country);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES);
textView.setAdapter(adapter);
}

在HelloAutoComplete类中,添加字符串数组:

  static final String[] COUNTRIES = new String[] {
   "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra",};

答案 1 :(得分:3)

在数据库内搜索

SQLLite提供内置功能以允许全文搜索

来自网络服务

通过网络服务搜索通常只需通过网络服务将搜索条件发送到服务器,服务器就会执行搜索并解析响应。

<强> Lucene的

除非您真正询问的是搜索索引,否则您可能拥有允许您快速索引大型数据库或Web服务的关键字,因为两者之间的数据可能不会重复。

在这种情况下,您可以使用LUCENE

然而,为了让lucene与Android一起使用,您可能需要查看源代码并使用RMI删除一些依赖项。

请参阅本页底部的解决方案(只需删除2个文件即可编译并使用Android)。

如何实施搜索对话框

开发人员指南仅为您提供足够的开始实现搜索对话框的界面。阅读示例源代码(在下面发布),看看它如何组合到一个应用程序中。

Android开发者指南

示例代码

答案 2 :(得分:1)

使用带有按钮的edittext或带按钮的自动完成文本视图。

从文件或数据库加载数据以获取自动完成部分。获取数据后,将其传递给Web服务调用或搜索本地数据库。

希望我得到了正确的要求并帮助了你。

答案 3 :(得分:1)