Android App ウィジェット ボタンを押して処理をする
App ウィジェットを作成してみたので、ウィジェットのボタンを押したら、メッセージを表示させてみたメモ。
package info.typea.eitangoroid;
import info.typea.eitangoroid.pro.R;
import android.app.PendingIntent;
import android.app.Service;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
import android.widget.RemoteViews;
public class FlippadWidgetProvider extends AppWidgetProvider {
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) {
for (int i=0; i<appWidgetIds.length; i++) {
Intent intent = new Intent(context, WidgetService.class);
PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, 0);
RemoteViews rv = new RemoteViews(context.getPackageName(), R.layout.flippad_widget);
rv.setOnClickPendingIntent(R.id.btn_showmessage, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetIds[i], rv);
}
}
public static class WidgetService extends Service {
@Override
public void onStart(Intent intent, int startId) {
RemoteViews rv = new RemoteViews(getPackageName(), R.layout.flippad_widget);
rv.setTextViewText(R.id.txt_message, "message!!");
ComponentName thisWidget = new ComponentName(this, FlippadWidgetProvider.class);
AppWidgetManager manager = AppWidgetManager.getInstance(this);
manager.updateAppWidget(thisWidget, rv);
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
}
