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

问题描述:

我正在开发android中的android应用程序,我想使用搜索选项,可以从Web服务或数据库中搜索特定数据项?如何在android应用程序中添加搜索选项?

+0

你能否提供更多的信息,究竟是什么,你正在努力实现与搜索? –

+0

我必须使我的应用程序的搜索功能数据来自webservices,但现在我只想在我的应用程序中搜索对话框我无法在我的应用程序中使该搜索对话框,所以你可以建议我任何解决方案 –

+0

@Amandeep singh - 我什么建议将网络服务中的信息解析为SQLLite数据库,然后在那里执行包括全文搜索在内的搜索查询。请参阅下面的答案。 –

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

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

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

+0

这看起来不错。但是这不足以让你的搜索框(搜索对话框)实现它,对吧?我的意思是搜索对话框是一个内置功能,可能是一个简单的EditText。你能告诉我如何让我的快速搜索框扩展此AutoCompleteTextView? – Harsh

创建名为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",}; 
+0

这看起来不错。但是这不足以让你的搜索框(搜索对话框)实现它,对吧?我的意思是搜索对话框是一个内置的功能,可能是一个简单的'EditText'。你能告诉我如何让我的快速搜索框扩展这个'AutoCompleteTextView'? – Harsh

你的数据库中搜索

SQLLite提供了内置的功能,允许全文搜索

从web服务

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

Lucene的

除非你真正问的是一个搜索索引,在那里你可以有一个关键字,可以让你快速索引大型数据库或Web服务,因为数据可能不是之间进行复制二。

在这种情况下,你可以利用Lucene

但是得到的Lucene与Android合作,您可能需要签出源,并删除了几个depenencies与RMI。

查看解决方案的底部(只需要删除2个文件,它应该可以编译和使用Android)。

如何实施搜索对话框

开发人员指南只给你足够的启动实现该接口到你的搜索对话框。仔细阅读示例源代码(在下面发布),看看它如何融入应用程序。

Android开发者指南

示例代码

+0

感谢您的建议,但你能告诉我如何使我的应用程序中的搜索对话框,我从这个链接http://android.ankara-gtug.org/guide/topics/search/search-dialog.html搜索,但我没有说明。 –

+0

@Adedeep singh - 你是@Avi Kumar Manku的另一个人吗?如果不是,请将这些额外信息添加到问题中。实际上,我会要求您提供代码以显示您迄今为止所做的工作,您拥有的错误/例外。 –

+0

不,我不是Avi我应该用相同的方式提问还是我可以用我的Id问你 –