當前位置:首頁 » 安卓系統 » android搜索功能實現

android搜索功能實現

發布時間: 2022-01-16 10:50:07

① 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中如何讓一個EditView被點擊後出現搜索框,搜索框已經實現

Android有自帶的一個控制項AutoCompleteTextView

具體用法如下:

java">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);
}
}

③ 如何實現Android ListView快速查找功能,關於SectionIndexer介面

TextView floatTextView = (TextView)LayoutInflater.from(this).inflate(R.layout.list_position, null);
WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT,
LayoutParams.TYPE_APPLICATION, LayoutParams.FLAG_NOT_TOUCHABLE
| LayoutParams.FLAG_NOT_FOCUSABLE, PixelFormat.TRANSLUCENT);
getWindowManager().addView(floatTextView, layoutParams);
floatTextView.setVisibility(View.INVISIBLE);
設置floatTextView.setVisibility(View.VISIBLE)就可以了,不知道是不樓主想要的效果

④ android開發中自定義搜索框怎麼實現百度搜索的功能並接受搜索結果listview顯示出來

請使用AutoCompleteTextView這個控制項,這個空間是textView的補充,內置listView功能,自動填充搜索結果

⑤ 安卓怎麼實現關鍵字搜索

很多app都可使用關鍵字搜索手機簡訊內容,如QQ通訊錄、來電通等等。
這些app主要功能有:
1、啟動QQ訊錄後,默認即進入聯系人頁面。可以上下拖動來瀏覽,拖動時會顯示姓名首字母便於用戶查QQ通訊錄界面找,同時也可以直接點擊右側的字母欄來快速定位。點擊聯系人後會進入操作選擇界面,用戶可以發送Q信、語音對講、撥打電話或是發送普通簡訊。如果對方還不是用戶的Q信好友,則會提示用戶邀請對方使用Q信。
2、在聯系人界面,點擊左上的"聯系人/Q信好友"可以在普通聯系人和Q信好友間進行切換。在聯系人界面點擊右上角的"同步通訊錄"按鈕,可以在線備份或恢復手機通訊錄。這樣用戶即便更換手機或手機丟失也沒關系,只要新手機還是這幾大智能平台,就可以跨平台恢復通訊錄了。

⑥ android 簡書發現搜索框怎麼實現的

1.app默認的桌面名字是工程名,需要更改的話,在Bundle dispaly name 上更改就行了 2.有時候導航條顏色比較深,我們希望狀態欄顯示的顏色能夠變得比較淺的時候就需要更改狀態欄顏色了,那麼修改的方法就是在在Info.plist中設置為NO,同時在響應頁面的代碼中需要添加如下的方法:在需要改變狀態欄顏色的ViewController中ViewDidLoad方法中增加:[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];如果需要在全部View中都變色,可以寫在父類的相關方法中。

⑦ android在聯系人列表界面怎樣實現中文聯系人搜索功能

安卓系統中的聯系人列表上方,有一個搜索框,輸入你想要查詢的中文聯系人名稱,就可以實現中文搜索功能。若只能搜索英文,可能是你的默認輸入法是英文,需要手動更改為中文輸入。換句話說,你輸入的是英文,則搜索英文,輸入中文,則可以實現搜索中文。

⑧ 請教android的EditText怎麼實現類似搜索引擎的輸入提示

那就是用AutoCompleteTextView這個控制項
它要綁定一個adapter下拉列表的適配器和數據
具用法你自己看android的api吧

⑨ 如何實現類似android自帶聯系人快速搜索功能

refresh_list.xml

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

<EditText

android:id="@+id/txt_input"

android:layout_width="fill_parent"

android:layout_height="wrap_content"
/>
<ListView android:id="@+id/list1"
android:layout_width="fill_parent"

android:layout_height="fill_parent"

/>

⑩ Android上如何實現快速的文件搜索

第一次運行的時候掃描所有文件並保存資料庫,監聽SD卡文件夾變化並更新資料庫,搜索時直接從資料庫查找

熱點內容
解壓到當前文件夾右鍵 發布:2024-04-26 03:57:08 瀏覽:979
html5android教程視頻下載 發布:2024-04-26 03:09:59 瀏覽:867
伺服器的描述是什麼 發布:2024-04-26 03:08:32 瀏覽:394
個人加密 發布:2024-04-26 03:01:23 瀏覽:520
linuxusbgadget 發布:2024-04-26 02:52:54 瀏覽:304
我的世界空島世界伺服器地址 發布:2024-04-26 01:39:08 瀏覽:248
尼爾機械紀元加密 發布:2024-04-26 01:37:11 瀏覽:867
在控制台輸出sql語句 發布:2024-04-26 01:08:12 瀏覽:432
動畫java 發布:2024-04-26 01:02:40 瀏覽:12
得力文件夾5302 發布:2024-04-26 00:21:32 瀏覽:91