2012-03-27 2 views
1

Я создаю weatherapp, к которому я также создаю виджет для рабочего стола. виджет покажет погоду для нескольких местоположений на основе пользовательских настроек приложения. Поскольку пользователь может выбрать любое количество мест, я не думаю, что могу использовать макеты xml, и вместо этого я думаю, что я должен создать gui программно, но как это сделать!Создайте виджет главного экрана gui программно

Я не могу найти способ установить gui (например, setContentView на активность) или получить удержание gui из xml (у меня есть xml с пустым линееклитом, который, как я думал, я мог бы добавить в него)

Как создать виджет gui программно?

ответ

1

Хорошо, я решил это самостоятельно .. после большого количества проб и ошибок. Я подумал, что я размещаю свое решение здесь.

Я создал файл xml.file, который я вызываю entity.xml, который содержит представления, которые мне нужно представлять в одном месте. Я также создаю еще один xml-файл с именем widgetLayout.xml, который содержит пустой linearLayout.

Затем я делаю это, когда хочу динамически создавать макеты виджетов.

 RemoteViews main = new  RemoteViews(getApplicationContext().getPackageName(),  R.layout.widget_layout); 
    main.removeAllViews(R.id.main); 


    RemoteViews location = new RemoteViews(getApplicationContext().getPackageName(), R.layout.entity); 
    location.setTextViewText(R.id.SpotName, "loc"); 

    RemoteViews location2 = new  RemoteViews(getApplicationContext().getPackageName(), R.layout.entity); 
    spot1.setTextViewText(R.id.SpotName, "loc2"); 

    main.addView(R.id.main, location); 
    main.addView(R.id.main, location2); 

    int[] allWidgetIds = intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS); 
    AppWidgetManager.getInstance(getApplicationContext()).updateAppWidget(allWidgetIds[0], main); 
+0

Поздравляем с исправлением! Когда вы в состоянии, пожалуйста, отметьте свой ответ как «принятый», чтобы ваше решение было доступно для других с той же проблемой. Приветствия ~ –

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