2013-07-04 54 views
1

我一直跟着從官方Android開發者頁面的應用程序窗口小部件教程: http://developer.android.com/guide/topics/appwidgets/index.html安卓小部件就不會顯示在主屏幕

我看到了「小工具」的小工具,當我去補充它到主主屏幕,它會加載指定的活動,但該視圖不會顯示在主屏幕上。

這裏的佈局:

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:orientation="vertical" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:gravity="center" 
      android:background="@drawable/ic_launcher"> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal|center" 
    android:text="My Widget..." /> 

<Button 
    android:id="@+id/myButton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal|center" 
    android:text="My test button" /> 

</LinearLayout> 

這裏是應用程序插件信息:

<?xml version="1.0" encoding="utf-8"?> 

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" 
       android:minWidth="72dp" 
       android:minHeight="72dp" 
       android:updatePeriodMillis="86400000" 
       android:previewImage="@drawable/ic_launcher" 
       android:initialLayout="@layout/widget_main" 
       android:configure=".MainActivity" 
       android:resizeMode="horizontal|vertical" 
       android:widgetCategory="home_screen|keyguard" 
       android:initialKeyguardLayout="@layout/widget_main"> 
</appwidget-provider> 

這裏是清單中的接收器:

<receiver android:name="MyWidget" > 
     <intent-filter> 
      <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> 
      <action android:name="android.appwidget.action.ACTION_WIDGET_RECEIVER"/> 
     </intent-filter> 
     <meta-data android:name="android.appwidget.provider" 
        android:resource="@xml/mywidget_info" /> 
    </receiver> 

回答

1

App Widgets Guide on Configuring Activity

  • App Widget主機調用配置Activity,配置Activity應該總是返回結果。結果應包括啓動Activity的Intent傳遞的App Widget ID(保存在Intent extras中作爲EXTRA_APPWIDGET_ID)。

當你正在更新的窗口小部件首次(從guide以下的),你確保你正在使用

Intent resultValue = new Intent(); 
resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId); 
setResult(RESULT_OK, resultValue); 

調用finish()過嗎?

+0

嘿,謝謝你的輸入。但是,我發現我忘記了在onUpdate上面包含@Override。 – user1234