0

我花了太长时间试图让 SearchDialog 出现在我正在使用 Mono for Android 开发的 Android 应用程序中。我希望其他人可以看看并告诉我我做错了什么。

我一直在使用Android 文档以及另一个 StackOverflow 帖子来指导我,但没有运气。

模拟器上的搜索按钮似乎不起作用(鼠标悬停时甚至不会亮起),但我可以按 F5 并在 OnSearchRequested 方法中命中断点。我试图在运行时查看 SearchManager,但找不到任何提示。

我试图让我的启动器活动 (Activity1) 使用另一个活动 (SearchableActivity)。除了标准的 OnCreate 覆盖之外,SearchableActivity.cs 中没有实现。

一切都在命名空间“test1”中。

我生成的 AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="G.Clients">
  <uses-sdk android:minSdkVersion="14" />
  <application android:label="Our Clients" android:name="mono.android.app.Application" android:debuggable="true">
    <activity android:name="test1.SearchableActivity">
      <intent-filter>
        <action android:name="android.intent.action.SEARCH" />
      </intent-filter>
      <meta-data android:name="android.app.searchable" android:resource="@xml/searchable" />
    </activity>
    <meta-data android:name="android.app.default_searchable" android:value="test1.SearchableActivity" />
    <activity android:label="Main" android:name="test1.Activity1">
      <meta-data android:name="android.app.default_searchable" android:value="test1.SearchableActivity" />
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
    <activity android:label="Clients" android:name="test1.ClientListActivity" />
    <provider android:name="mono.MonoRuntimeProvider" android:exported="false" android:initOrder="2147483647" android:authorities="G.Clients.__mono_init__" />
    <receiver android:name="mono.android.Seppuku">
      <intent-filter>
        <action android:name="mono.android.intent.action.SEPPUKU" />
        <category android:name="mono.android.intent.category.SEPPUKU.G.Clients" />
      </intent-filter>
    </receiver>
  </application>
  <uses-permission android:name="android.permission.INTERNET" />
</manifest>

我的 searchable.xml(位于文件夹 Resources/xml):

<?xml version="1.0" encoding=utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android" 
  android:label="search" android:hint="clients">
</searchable>

任何帮助将不胜感激。提前致谢。

4

1 回答 1

1

万一其他人偶然发现了这一点,我似乎错过了 xamarin.com 网站上的示例项目:SearchableDictionary

我能够根据这个工作示例对我自己的项目进行修改。

于 2012-07-18T14:41:40.240 回答