我試圖實現每文檔這裏單聲道Android應用搜索對話框: http://developer.android.com/guide/topics/search/search-dialog.html搜索對話框中單的Android
我有一個用戶應該能夠從搜索活動:
[Activity (Label = "MyActivity", MainLauncher = true, Icon = "@drawable/icon", Theme = "@style/MyStyle")]
[MetaData ("android.app.default_searchable", Value = ".SearchActivity")]
public class MainActivity : BaseActivity {...
我有一個可搜索的活動(其中重型起重會發生):
[Activity(Theme = "@style/MyStyle", Label = "Searchable", LaunchMode = Android.Content.PM.LaunchMode.SingleTop)]
[IntentFilter(new[] { Intent.ActionMain }, Categories = new[] { Intent.CategoryLauncher, Intent.ActionSearch })]
[MetaData("searchable", Resource = "@xml/searchable")]
public class SearchActivity : BaseActivity { ...
我有我的searchable.xml:
<?xml version="1.0" encoding="utf-8"?>
<searchable
xmlns:android="http://schemas.android.com/apk/res/android"
android:label="MyLabel"
android:hint="Search Products">
</searchable>
當我在MainActivity上按手機上的搜索鍵時,沒有任何反應 - 沒有對話框。我認爲我的問題在於如何在運行時將屬性轉換爲AndroidManifest.xml,但我不確定。
UPDATE 1/3/2012: 我已經發布了一個項目,這些項目是在這裏最基本的元素。按下Android上的搜索按鈕,您應該會看到SearchDialog,但它不會出現:Demo Project Here
對不起,我等了這麼久接受了答案。此解決方案有效但缺少一些信息。首先,Google文檔暗示在您的活動名稱前添加「。」將完全限定它顯然是錯誤的。其次,命名空間必須是小寫。我已經嘗試完全限定類名,但它不起作用,因爲我的名字空間中有大寫字母。我不明白爲什麼會這樣。 – dubj
Java要求命名空間是小寫的,所以Android的Mono在幕後爲您翻譯。在這種情況下,您必須使用Java完全限定的類名稱。您可以自定義將在項目屬性中使用的名稱空間,並且您可以始終檢查在打包期間生成的obj/Debug/android文件夾中生成的AndroidManifest.xml文件,以查看正在生成的內容。 –
不知道有關Java命名空間或如何找到生成的清單文件。我試圖看的一個(包裝在apk中)是二進制格式。這非常有幫助,謝謝! – dubj