我正在尝试创建创建WiFi热点的应用小部件,我对点击事件有疑问。
我有按钮,我无法使用onclicklistener。 我在google和这里搜索过,我知道我需要将Intent发送给其他分析它的类,但我对此有疑问。
这是我的MainActivity代码: http://pastebin.com/pjhLkXGh
这是我的wifiWidget代码: http://pastebin.com/4NyT3U5u
我的xml文件是: http://pastebin.com/9cUuRLbB
非常感谢!
答案 0 :(得分:0)
通过使用对象而不是PendingIntents,开发人员可以更轻松地使用小部件来处理这些小部件。如果你是第一次编码它可能会非常棘手。
public class MyWidgetProvider extends AppWidgetProvider {
public static String WIDGET_BUTTON = "com.anbe.turboandroid.WIDGET_BUTTON";
private static final String SYNC_CLICKED = "automaticWidgetSyncButtonClick";
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
RemoteViews remoteViews;
ComponentName watchWidget;
remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
watchWidget = new ComponentName(context, MyWidgetProvider.class);
remoteViews.setOnClickPendingIntent(R.id.Cache, getPendingSelfIntent(context, SYNC_CLICKED));
appWidgetManager.updateAppWidget(watchWidget, remoteViews);
}
@Override
public void onReceive(final Context context, Intent intent) {
// TODO Auto-generated method stub
super.onReceive(context, intent);
if (SYNC_CLICKED.equals(intent.getAction())) {
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
final RemoteViews remoteViews;
ComponentName watchWidget;
remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
watchWidget = new ComponentName(context, MyWidgetProvider.class);
appWidgetManager.updateAppWidget(watchWidget, remoteViews);
// DO SOME STUFF HERE
}
}
protected PendingIntent getPendingSelfIntent(Context context, String action) {
Intent intent = new Intent(context, getClass());
intent.setAction(action);
return PendingIntent.getBroadcast(context, 0, intent, 0);
}
}
您可以在注释部分编写任务。
干杯 加布里埃尔