2017-09-06 57 views
11

在提供UI的Android SearchView小部件中。 它將搜索查詢並向搜索提供者提交請求。什麼是android SearchView的搜索類型?

有不同類型的像二分查找類別提供的搜索查詢的...

通過Android小工具搜索查看執行什麼樣的搜索查詢的?

(二分查找或者LinerSearch或其他任何東西......)

+0

看着[這](ht tps://github.com/aosp-mirror/platform_frameworks_base/blob/master/core/java/android/widget/SearchView.java),它最終引發了一個動作爲ACTION_SEARCH的意圖。如果我們只能弄清楚android如何處理這種意圖。 –

+1

@AmitBarjatya我認爲[本節](https://developer.android.com/guide/topics/search/search-dialog.html#SearchableActivity)的文檔可能是你正在尋找的。 – Cheticamp

回答

8

它是由應用程序開發者來搜索數據和結果提供給搜索小工具。搜索小部件爲應用程序執行搜索提供了一個框架,但不直接搜索數據。從Creating a Search Interface

搜索數據

存儲和搜索您的數據是唯一的應用程序的過程。您可以通過多種方式存儲和搜索數據,但本指南不會告訴您如何存儲數據並進行搜索。根據您的需求和數據格式,存儲和搜索數據是您應該仔細考慮的問題。

因此,您可以按照對數據存儲和組織方式最有意義的方式來搜索數據。

5

如果你問關於android.widget.SearchView,你可以實現接口android.widget.SearchView.OnQueryTextListener並做任何你想要的東西。

例如,讓我們創建OnQueryTextListener爲活動的一部分:

public class MyActivity implements OnQueryTextListener{ 

    @Override 
    protected void onCreate(Bundle savedInstanceState){ 

     ... 

     SearchView s=new SearchView(this); 
     s.setFitsSystemWindows(true); 
     s.setMaxWidth(Integer.MAX_VALUE); 
     s.setIconifiedByDefault(false); 
     s.setOnQueryTextListener(this); // <--- this sets listener 

     ... 

    } 

現在兩個方法你要實現什麼:

@Override 
    public boolean onQueryTextChange(String newText){ 
     return false; // <--- you can leave it empty! 
    } 

    @Override 
    public boolean onQueryTextSubmit(String query){ 
     if(!query.isEmpty()){ 
      do_something_on_user_post(); 
     } 
     return false; 
    } 
+0

我知道如何實現..我只是想知道類型的搜索查詢。 –

4

版本的Android 「的Widget」 是執行搜索但不直接搜索數據 你實現自己的搜索算法