2012-01-09 3 views
0

Я реализую виджет для своего приложения в первый раз, поэтому я легко использовал его, используя онлайн-примеры, и создал рабочий, очень простой виджет. Он отлично работает в эмуляторе и на моем планшете Honeycomb, но когда я пытаюсь добавить его на свою домашнюю страницу на моем Nexus S с помощью Ice Cream Sandwich, виджет не включен в список всех других виджетов. Я делаю что-то неправильно? Для сока, вот простые части моего виджета. Как я уже сказал, я просто пытаюсь понять это и расширить оттуда, как только я получу базовую структуру.Виджет не указан в ICS

Manifest:

<receiver android:name=".MyDJAppWidgetProvider" android:label="@string/widget_name"> 
     <intent-filter> 
      <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> 
     </intent-filter> 
     <meta-data android:name="android.appwidget.provider" android:resource="@xml/mdj_doublewide" /> 
</receiver> 

Widget:

<?xml version="1.0" encoding="utf-8"?> 
<appwidget-provider 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    android:minWidth="146dip" 
    android:minHeight="72dip" 
    android:initialLayout="@layout/widget_message" 
    android:updatePeriodMillis="86400000" 
</appwidget-provider> 

Планировка:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" android:gravity="center" 
android:layout_margin="4dp" android:layout_height="fill_parent" 
    android:layout_width="fill_parent"> 
<TextView android:id="@+id/widget_word" 
    android:layout_height="wrap_content" android:layout_width="wrap_content" 
      android:background="@drawable/custom_button"/> 

</LinearLayout> 

ответ

0

я обнаружил проблему. Это просто синтаксическая ошибка в определении xml самого виджета. У меня была строка> после строки xmlns: android, а не в конце инструкции (android: updatePeriodMillis). Мое новое определение выглядит так, и после перезагрузки (как указано в 4.0 в другом месте) виджет теперь отображается - и это вид широкоугольного виджета, как и должно быть.

<?xml version="1.0" encoding="utf-8"?> 
<appwidget-provider 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:minHeight="72dp" 
    android:minWidth="146dp" 
    android:initialLayout="@layout/widget_message" 
    android:updatePeriodMillis="720000" > 
</appwidget-provider> 

Oh Happy Day. Теперь, чтобы этот виджет сказал что-то, кроме времени :)