1

Я пытаюсь создать свой собственный макет программным путем, затем «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 ...

Благодаря

ответ

2

Пытаюсь построить свой собственный макет программно, то «строительный» RemoteViews и показать его в качестве уведомления

Идентификатор передается RemoteViews конструктор должен быть макет идентификатор ресурса. Затем вам нужно использовать методы на RemoteViews, чтобы попытаться построить вашу структуру, хотя я сомневаюсь, что она сработает.

+0

Почему это было бы нормально, чтобы дать 'ResourceID' и не сгенерированный уникальный идентификатор? – SagiLow

+0

@SagiLow: Во-первых, эти два не связаны. Во-вторых, в документации говорится, что вам нужно предоставить идентификатор ресурса макета. В-третьих, точка, стоящая за «RemoteViews», - это отправить определение пользовательского интерфейса на другой процесс, и этот процесс не имеет доступа к вашим объектам Java (например, «LinearLayout»). – CommonsWare

Смежные вопросы