功能/src/main/res/xml/searchable.xml:
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/app_name"
android:hint="@string/search_hint" >
<!-- TODO https://developer.android.com/guide/topics/search/searchable-config -->
</searchable>
在构建的即时应用程序中找不到,基本模块中除了样式外没有任何内容。错误输出行是:
AGPBI: {"kind":"error","text":"error: resource xml/searchable (aka at.mts.arnatomy.app:xml/searchable) not found.","sources":[{"file":"./arnatomy/base/build/intermediates/manifests/full/feature/debug/AndroidManifest.xml","position":{"startLine":53}}],"original":"","tool":"AAPT"}
功能/src/main/AndroidManifest.xml 中的相应操作:
<activity
android:name=".SearchableActivity"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable"/>
</activity>
中相应文本字段的布局为 feature / src / main / res / layout / search.xml :
...
<android.support.v7.widget.AppCompatEditText
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="@string/search_hint"
android:imeOptions="actionSearch"
android:inputType="text"
android:layout_weight="1"/>
...
功能/src/main/java/SearchableActivity.java 的相关代码为:
...
AppCompatEditText text = findViewById(R.id.text);
text.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
boolean handled = false;
if (actionId == EditorInfo.IME_ACTION_SEND) {
doMySearch(v.getText().toString());
handled = true;
}
return handled;
}
});
...
其中方法 doMySerach 仅打印Toast。 minSdkVersion 是24, target-以及 compileSdkVersion 是27。 searchable.xml 文件怎么不能不找到了?我也尝试过但基本模块中的 xml 文件夹仍然没有成功。
答案 0 :(得分:0)
将 xml 文件夹移至基本模块并进行干净的重建解决了该问题。在即时应用中, searchable.xml 接缝仅允许在构建模块中使用。