- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在用户单击搜索建议时设置 Intent.ACTION_VIEW。它仍然执行 ACTION_SEARCH Intent ,因此它在建议框中搜索提供的信息,但我希望它将它传递给已经显示单击对象的 Activity。我不使用 SearchActivity 及其方法(onNewIntent 等),我只使用 Activity,它显示结果列表 - 它设置为 _default_searchable。
但是如果我需要在选择建议项时将其传递给不同的 Activity ,我该怎么办?
我在 Manifest 的第二个 Activity 中将 android:searchSuggestIntentAction="android.intent.action.VIEW"
和 intent-filter 设置为 intent.VIEW 但它不起作用
你知道怎么做吗?
searchable.xml
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/app_name"
android:hint="@string/search_hint"
android:searchSuggestAuthority="com.example.animalist.SuggestionProvider"
android:searchSuggestSelection=" ?"
android:searchSuggestIntentAction="android.intent.action.VIEW"
/>
list
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<provider
android:authorities="com.example.animalist.SuggestionProvider"
android:name=".SuggestionProvider" >
</provider>
<meta-data android:name="android.app.default_searchable"
android:value=".SearchActivity"/>
<activity
android:name="com.example.animalist.MainActivity"
android:label="@string/app_name"
android:launchMode="singleTop"
android:screenOrientation="portrait" >
<meta-data android:name="android.app.default_searchable"
android:value=".SearchActivity"/>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.animalist.MoreActivity"
android:label="@string/title_activity_more"
android:launchMode="singleTop"
android:parentActivityName="com.example.animalist.MainActivity"
android:screenOrientation="portrait" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.animalist.MainActivity" />
<intent-filter>
<action android:name="android.intent.action.VIEW" />
</intent-filter>
</activity>
<activity
android:name="com.example.animalist.SearchActivity"
android:label="@string/title_activity_search"
android:launchMode="singleTop"
android:parentActivityName="com.example.animalist.MainActivity"
android:screenOrientation="portrait" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.animalist.MainActivity" />
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>
</application>
提供者
public class SuggestionProvider extends SearchRecentSuggestionsProvider {
private static final String TAG = "SuggestionProvider";
private static final int SEARCH_SUGGESTIONS = 1;
private static final UriMatcher sURLMatcher = new UriMatcher(
UriMatcher.NO_MATCH);
static {
sURLMatcher.addURI("*", SearchManager.SUGGEST_URI_PATH_QUERY,
SEARCH_SUGGESTIONS);
sURLMatcher.addURI("*", SearchManager.SUGGEST_URI_PATH_QUERY + "/*",
SEARCH_SUGGESTIONS);
}
private static final String[] COLUMNS = new String[] {
"_id",
SearchManager.SUGGEST_COLUMN_TEXT_1,
SearchManager.SUGGEST_COLUMN_INTENT_ACTION,
SearchManager.SUGGEST_COLUMN_QUERY,
SearchManager.SUGGEST_COLUMN_INTENT_EXTRA_DATA
};
public SuggestionProvider() {
}
@Override
public boolean onCreate() {
return true;
}
@Override
public Cursor query(Uri url, String[] projectionIn, String selection,
String[] selectionArgs, String sort) {
int match = sURLMatcher.match(url);
switch (match) {
case SEARCH_SUGGESTIONS:
String query = url.getLastPathSegment();
MatrixCursor cursor = new MatrixCursor(COLUMNS);
ParseQuery<Animal> squery = ParseQuery.getQuery(Animal.class);
try {
List<Animal> results = squery.find();
for (Animal animal : results) {
addRow(cursor, animal.getAnimal());
} }catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return cursor;}
return null;
}
private void addRow(MatrixCursor cursor, String string) {
long id = cursor.getCount();
cursor .newRow().add(id).add(string).add(Intent.ACTION_SEARCH).add(string);
}
@Override
public String getType(Uri url) {
int match = sURLMatcher.match(url);
switch (match) {
case SEARCH_SUGGESTIONS:
return SearchManager.SUGGEST_MIME_TYPE;
default:
throw new IllegalArgumentException("Unknown URL: " + url);
}
}
@Override
public int update(Uri url, ContentValues values, String where, String[] whereArgs) {
throw new UnsupportedOperationException("update not supported");
}
@Override
public Uri insert(Uri url, ContentValues initialValues) {
throw new UnsupportedOperationException("insert not supported");
}
@Override
public int delete(Uri url, String where, String[] whereArgs) {
throw new UnsupportedOperationException("delete not supported");
}
}
在此先感谢您的帮助
最佳答案
虽然这不是一个很好的方法,但我之前通过创建一个处理 VIEW 和 SEARCH 两个 Intent 的透明 Activity 解决了这个问题。
从这个 Activity 中,您可以启动将处理任一情况的 Activity 并完成透明 Activity ,传递搜索参数。
关于android - Intent.ACTION_VIEW 在可搜索中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21766765/
在 Intent.ACTION_VIEW 中 Intent 是什么?它是一个类还是方法,这里什么是 ACTION_VIEW ?它是一个变量吗?它的类型是什么?请详细解释。谢谢。 最佳答案 Intent
我有 1 到 3 张照片希望我的应用显示。直到运行时我才知道到底有多少照片是从 Internet 下载的。 我不知道如何创建 Intent 来显示照片。现在我将它们缓存在我创建的文件夹下的 sdcar
我需要用户选择自己的播放器来播放视频我试试 public class VideoViewActivity extends Activity { @Override public voi
Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW);
我正在创建一个像 https://www.example.com/somedirection 这样的 URI 并且 ACTION_VIEW Intent . 有一个应用程序,我们称它为 EXAMPLE
我正在尝试在用户单击搜索建议时设置 Intent.ACTION_VIEW。它仍然执行 ACTION_SEARCH Intent ,因此它在建议框中搜索提供的信息,但我希望它将它传递给已经显示单击对象的
我们有一个允许用户手动更新应用程序的流程,因为我们的设备没有任何应用程序商店。我们从我们的服务器下载 apk 并运行: updateIntent = new Intent(Intent.ACTION_
如何将 HTTP 基本身份验证信息传递给 Intent.ACTION_VIEW?这是我发射 Intent 的地方: public class OutageListFragment extends Li
我有显示多个文件的要求(图像、音乐或视频各有 2 个或更多,但只有一种类型)。给定一系列缩略图或文件名,用户应该能够选择一个复选框并预览选择。如果用户选择多张图片,我希望能够只显示那些选择的图片。如果
我一直在寻找这个,但我无法让它正常工作。让我解释一下。 我有一个 android 应用程序,它在缓存目录中保存文件 (图像、文档、...)。起初我使用 getExternalCacheDir() 方法
我的 Android 手机的外部存储中有一个文件(在本例中是模拟的)。知道它的路径和/或有一个代表它的 File 对象,我如何使用 Intent 在适当的应用程序中打开它? 我首先尝试的是: star
我有一个应用程序想要在图库应用程序中查看图像。我使用这段代码来查看它: File cachedImage = cache.getFile(image.getImageUrl()); Intent in
我正在做一个应用程序,我的 list 中有一个 Intent Filter,这个 Intent Filter 有 Action 和类别 并且,当我想启动一个包含在该 Intent 过滤器中声明的
我需要在播放视频时设置标题。 Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(uri, "video/*")
我的应用的一位用户报告说,在升级到 Android 10 后,我的应用在他的设备上停止显示图像。 Intent intent = new Intent(Intent.ACTION_VIEW); int
他们都在数据中传输信息,当我开始一个新的 Intent 时,他们似乎都开始了一个新的 Activity 。所以我真的不知道它们之间的区别。 最佳答案 使用 Intent 开始新 Activity 时,
有一个应用程序。它允许用户从一个网络媒体资源中观看大量视频文件。我知道可以强制执行以下示例中的 Activity 结果: Intent intent = new Intent(); setResult
我的语法可以在 android 5.1 上运行,但不能在 android 7.1 上运行.... File file = new File(Environment.getExternalStorage
我正在尝试使用 intent 查看特定文件夹中的图像。我的代码如下: Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIE
我有一个包含一些文件的 ListView ,可以有各种类型,如 pdf 或文档。当用户单击一个文件时,我会得到文件 mime 类型并启动一个 Intent ,让用户选择使用哪个应用程序打开它file.
我是一名优秀的程序员,十分优秀!