IceRage
0
Hallo zusammen,
ich versuche gerade, ein mehrfach Widget zu erzeugen, von denen ich die ImageButton Clicks unterscheiden will. Ich habe also beispielsweise 3 gleiche Widgets, die je einen ImageButton haben und die ich in der "onReceive" Methode unterscheiden können will. Was ich bis jetzt habe:
Und hier die Manifest XML ....
Ich bekommen immer nur einen einzigen Wert ausgegeben und der ist 0. Ich habe aber bereits mit mehreren Widgets experimentiert und müsste eigentlich in "onReceive" die Ausgabe 0, 1 oder 2 bekommen, je nachdem, welcher ImageButton geklickt worden ist.
Hat jemand eine Ahnung, was ich da falsch mache?
Gruß, IceRage
ich versuche gerade, ein mehrfach Widget zu erzeugen, von denen ich die ImageButton Clicks unterscheiden will. Ich habe also beispielsweise 3 gleiche Widgets, die je einen ImageButton haben und die ich in der "onReceive" Methode unterscheiden können will. Was ich bis jetzt habe:
Code:
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
// There may be multiple widgets active, so update all of them
super.onUpdate(context, appWidgetManager, appWidgetIds);
final int N = appWidgetIds.length;
for (int i = 0; i < N; i++) {
System.out.println("test 0" + i);
// Create an Intent
Intent intent = new Intent(context, OnLights.class).setAction(ACTION_WIDGET_RECEIVER_LIGHT);
[B]intent.putExtra(STR_KEY, i);[/B]
System.out.println(appWidgetIds[i]);
PendingIntent lightIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.on_lights);
views.setOnClickPendingIntent(R.id.imageButton, lightIntent);
appWidgetManager.updateAppWidget(appWidgetIds[i], views);
}
}
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ACTION_WIDGET_RECEIVER_LIGHT)) {
[B] System.out.println(intent.getIntExtra(STR_KEY, 99));[/B]
System.out.println(intent.hasExtra(STR_KEY));
} else {
super.onReceive(context, intent);
}
}
Und hier die Manifest XML ....
Code:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme" >
<receiver android:name=".OnLights" >
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/on_lights_info" />
</receiver>
</application>
Ich bekommen immer nur einen einzigen Wert ausgegeben und der ist 0. Ich habe aber bereits mit mehreren Widgets experimentiert und müsste eigentlich in "onReceive" die Ausgabe 0, 1 oder 2 bekommen, je nachdem, welcher ImageButton geklickt worden ist.
Hat jemand eine Ahnung, was ich da falsch mache?
Gruß, IceRage