コモンズウェア コード 'LoremWidget' に基づいてウィジェットを実装しようとしています。Github のこちらを参照してください。
問題は、クリックが機能しないことです
WidgetUpdate で、 WidgetProviderと同じ
for (int appWidgetId : appWidgetIds)
{
RemoteViews remoteView = new RemoteViews(context.getPackageName(), R.layout.widget);
Intent configIntent = new Intent(context, WidgetService.class);
PendingIntent configPendingIntent =PendingIntent.getActivity(context, 0, configIntent, 0);
remoteView.setPendingIntentTemplate(R.id.imgNext, configPendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, remoteView);
}
マニフェストと同様に、マニフェストで
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.demo.widget"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".WidgetConfig"
android:label="@string/app_name" >
<intent-filter>
<action
android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
</intent-filter>
</activity>
<receiver
android:name="BasicWidgetProvider">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_info" />
</receiver>
<service android:name="WidgetService"
android:permission="android.permission.BIND_REMOTEVIEWS" />
</application>
</manifest>
WidgetService, similar to WidgetService
public class WidgetService extends RemoteViewsService
{
private static final String TAG=WidgetService.class.getName();
@Override
public RemoteViewsFactory onGetViewFactory(Intent intent)
{
Log.d(TAG, "inside remoteview");
return(new WidgetFactory(this.getApplicationContext(),
intent));
}
}
WidgetFactory getView method as here
public RemoteViews getViewAt(int arg0)
{
Log.d(TAG, "inside the getview at");
RemoteViews row=new RemoteViews(ctxt.getPackageName(), R.layout.widget);
row.setViewVisibility(R.id.imgNext, View.INVISIBLE);
Intent i=new Intent();
Bundle extras=new Bundle();
return(row);
}
Questions:
1. why is widget not updating, no logs are generated infact the only log relevant to my code is
05-15 23:24:27.648: I/ActivityManager(161): START {flg=0x10000000 cmp=com.demo.widget/.WidgetService bnds=[509,299][547,337]} from pid -1
2.これはウィジェットで単純なクリックだけを実装する正しい方法ですか?他の方法はありますか?このウィジェットファクトリーが唯一の方法ですか?