我正在android中开发一个Android应用程序,我想使用搜索选项,我可以从Web服务或数据库中搜索特定数据项?
答案 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)