Как мне getText (). ToString () TextView с помощью RemoteViews? - PullRequest
1 голос
/ 11 июля 2020

Я впервые разрабатываю виджет, и remoteviews немного сбивает с толку по сравнению с созданием приложения.

Я понимаю эту часть ...

RemoteViews views = new Remoteviews(context.getPackageName(), R.layout.my_widget_layout);
views.setTextViewText(R.id.myTV, "Hello World");

Теперь следующий для меня немного сложен. Я хочу, чтобы кнопка на виджете передавала текст TextView и отображала его в тосте.

Вот что я начал ...

Intent myIntent = new Intent(context, myReceiver.class);
PendingIntent myPendingIntent = PendingIntent.getBroadcast(context, 0, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
views.setOnClickPendingIntent(R.id.myButton, myPendingIntent);

My Class (Это где Мне нужна помощь!)

public static class myReceiver extends BroadcastReceiver{

Override
public void onReceive(Context context, Intent intent){
Toast.makeText(context, (HELP! I need to getText().toString() from the R.id.myTV), Toast.LENGTH_SHORT).show();
}
}

Спасибо! Очень признателен!

1 Ответ

0 голосов
/ 11 июля 2020

Вы можете добавить текст, который хотите отобразить, в намерение с помощью метода putStringExtra, а затем извлечь дополнительную строку следующим образом:

    @Override
    public void onReceive(Context context, Intent intent) {
        AppWidgetManager mgr = AppWidgetManager.getInstance(context);
        if (intent.getAction().equals(check-your-desired-action-here)) {
            String textThatYouWantToDisplay = intent.getStringExtra("name-of-the-desired-item");
            Toast.makeText(context,textThatYouWantToDisplay , Toast.LENGTH_SHORT).show();
        }
        super.onReceive(context, intent);
    }

для получения дополнительной информации:

this пример приложения-виджета из Google

Создание виджета приложения android документ

Intent getStringExtra метод

...