Я пытаюсь создать свой собственный макет программным путем, затем «building» RemoteViews
и показать его как уведомление.Android «Невозможно развернуть RemoteViews for ...» при создании макета программно
Скелет:
LinearLayout baseLayout = new LinearLayout(context);
for (X) {
LinearLayout innerLayout = new LinearLayout(context);
for (Y) {
TextView textV = new TextView(context);
}
innerLayout.addView(textV);
}
baseLayout.addView(innerLayout);
}
RemoteViews remoteView = new RemoteViews(getPcakageName(), baseLayout.getId());
Для каждого макета я поставил LayoutParams
, orientation
и ID
от метода, изложенного здесь: https://stackoverflow.com/a/15442898/1405268.
Когда я пытаюсь запустить уведомление с RemoteViews
, я получаю `Bad уведомление отправил из пакета XXX: Не удалось расширить RemoteViews для StatusBarNotification ...
Благодаря
Почему это было бы нормально, чтобы дать 'ResourceID' и не сгенерированный уникальный идентификатор? – SagiLow
@SagiLow: Во-первых, эти два не связаны. Во-вторых, в документации говорится, что вам нужно предоставить идентификатор ресурса макета. В-третьих, точка, стоящая за «RemoteViews», - это отправить определение пользовательского интерфейса на другой процесс, и этот процесс не имеет доступа к вашим объектам Java (например, «LinearLayout»). – CommonsWare