我想製作一個主屏幕小部件,它將打開和關閉gps(位置設置)。我仍然不明白如何處理按鈕點擊事件。在主屏幕小部件中處理按鈕點擊
我從線上教程中獲取了這段代碼。
public class LocationWidget extends AppWidgetProvider {
private static String SYNC_CLICKED = "automaticWidgetSyncButtonClick";
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
final int count = appWidgetIds.length;
String status;
LocationManager manager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
for (int i = 0; i < count; i++) {
int widgetId = appWidgetIds[i];
if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
status = "OFF";
} else {
status = "ON";
}
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.activity_main);
remoteViews.setTextViewText(R.id.textView, status);
Intent intent = new Intent(context, LocationWidget.class);
intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
remoteViews.setOnClickPendingIntent(R.id.actionButton, pendingIntent);
appWidgetManager.updateAppWidget(widgetId, remoteViews);
}
}
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.activity_main);
remoteViews.setTextViewText(R.id.textView, "Button clicked");
Log.v("ACTION", intent.getAction());
}
}
裏面的onReceive,Log.v返回 「ACTION:android.appwidget.action.APPWIDGET_UPDATE」。所以我需要幫助,使按鈕按照我想要的方式單擊時的行爲。有人可以解釋如何和爲什麼?
但是,具體操作應該返回一個按鈕,爲什麼? – Gobtron
看來,Stack Exchange上的[this](http://stackoverflow.com/questions/3320115/android-onclicklistener-identify-button)帖子可以回答你的問題,也許在那裏檢查? – liquidsystem