1
我正在研究如何編寫自己的android應用程序。我自己寫了一個,現在我試圖爲它實現一個AppWidget。看不到我的AppWidget,我試圖添加到現有的應用程序
我使用this page作爲我工作的指導原則。
我決定實現一個AppWidget,一開始沒有任何邏輯,只是一個佈局。 該項目的構建和運行沒有錯誤,但是,當我試圖將我的小部件添加到啓動器時,我沒有在可用小部件列表中看到它。
我只能在具有小部件的應用程序列表中看到我的應用程序,但在嘗試按應用程序過濾小部件時,我什麼都看不到。
我找了一個解決方案,但沒有找到任何。剛剛在android 4.0.4中發現了appwidgets的問題,這是通過重新啓動設備或如果小部件有任何說明主應用程序來解決的。
我的小部件的代碼可以看到更低。
它有什麼問題嗎?空課是否是問題?
我提出清單中的以下變化:
<receiver android:name="ru.pinedevelop.wind.NormalWidget"
android:label="@string/app_name"
android:icon="@drawable/ic_launcher">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/normal_widget" />
</receiver>
然後添加以下desctiption到XML/normal_widget.xml:
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="schemas.android.com/apk/res/android"
android:minWidth="146dip"
android:minHeight="72dip"
android:updatePeriodMillis="86400000"
android:resizeMode="none"
android:initialLayout="@layout/normal_widget_main" />
後來我加了以下佈局爲我的小工具:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/appwidget_dark_bg">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center">
<TextView android:id="@+id/widget_spot_name"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center_vertical|left"
android:textColor="@android:color/white"/>
<TextView android:id="@+id/widget_spot_update_time"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center_vertical|left"
android:textColor="@android:color/white"/>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center">
<TextView android:id="@+id/widget_max_label"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/widget_label_max"
android:layout_gravity="center_vertical|left"
android:textColor="@android:color/white"/>
<TextView android:id="@+id/widget_max_value"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center_vertical|left"
android:textColor="@android:color/white"/>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center">
<TextView android:id="@+id/widget_avg_label"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/widget_label_avg"
android:layout_gravity="center_vertical|left"
android:textColor="@android:color/white"/>
<TextView android:id="@+id/widget_avg_value"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center_vertical|left"
android:textColor="@android:color/white"/>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center">
<TextView android:id="@+id/widget_min_label"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/widget_label_min"
android:layout_gravity="center_vertical|left"
android:textColor="@android:color/white"/>
<TextView android:id="@+id/widget_min_value"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center_vertical|left"
android:textColor="@android:color/white"/>
</LinearLayout>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/widget_arrow"
android:src="@drawable/arrow50"
android:background="#ffffff"
android:cropToPadding="false"
android:contentDescription="@string/widget_arrow_descr"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
併爲它創建了一個虛擬類:
package ru.pinedevelop.wind;
import android.appwidget.AppWidgetProvider;
public class NormalWidget extends AppWidgetProvider {
}