Использование action_text_process для Google Translate - PullRequest
0 голосов
/ 07 июля 2019

Я прошел учебник, объясняющий, как использовать action_text_process. https://android -developers.googleblog.com / 2015/10 / в-приложение-переводы-в-android.html

Однако я упускаю очень простую вещь. где использовать этот код и где вызывать каждый метод, и какова последовательность вызова упомянутых методов ?!

Я пытался вызвать их в моем TextView onlongClickListner (), но не смог сделать это правильно ... возможно, последовательность методов была неправильной.

И я попытался поместить его в onCreat () моей основной деятельности TextView. Я также добавил требования к файлу манифеста:

<activity
        android:name=".PreviewActivity"
        android:label="Preview" >
 <intent-filter>
            <action android:name="android.intent.action.PROCESS_TEXT" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="text/plain" />
        </intent-filter>
</activity>

и ниже - код (полученный по общей учебной ссылке):

private Intent createProcessTextIntent() {
    return new Intent()
            .setAction(Intent.ACTION_PROCESS_TEXT)
            .setType("text/plain");
}
private List<ResolveInfo> getSupportedActivities() {
    PackageManager packageManager =
            question.getContext().getPackageManager();
    return

packageManager.queryIntentActivities(createProcessTextIntent(),
                    0);
}

private Intent createProcessTextIntentForResolveInfo(ResolveInfo info) {
    return createProcessTextIntent()
            .putExtra(Intent.EXTRA_PROCESS_TEXT_READONLY, false)
            .setClassName(info.activityInfo.packageName,
                    info.activityInfo.name);
}
public void onInitializeMenu(Menu menu) {
    // Start with a menu Item order value that is high enough
    // so that your "PROCESS_TEXT" menu items appear after the
    // standard selection menu items like Cut, Copy, Paste.

    int menuItemOrder = 100;
    for (ResolveInfo resolveInfo : getSupportedActivities()) {
        menu.add(Menu.NONE, Menu.NONE,
                menuItemOrder++, resolveInfo.loadLabel(question.getContext().getPackageManager()))

                .setIntent(createProcessTextIntentForResolveInfo(resolveInfo))
                .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
    }
}

Я бы хотел, чтобы при выборе текста отображалось действие по обработке текста перевода

...