Bonjour,
Je voudrais changer le background d'un bouton dans un widget quand je clicque au dessus.
voici mon code:
dans widget.xml -- le layout d'un widget
1 2 3 4 5 6 7 8 9
|
<Button android:id="@+id/widget_button"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal|center"
android:layout_marginTop="5dip"
android:padding="10dip"
android:soundEffectsEnabled="true"
android:background="@drawable/close2"/> |
widget.xml est utilisé dans widget_provider.xml
1 2 3 4 5 6 7
|
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="146dip"
android:minHeight="72dip"
android:updatePeriodMillis="10000"
android:initialLayout="@layout/widget"
/> |
dans la méthode onUpdate du widget.java, je lance une activity - updateCard
1 2 3 4 5 6 7 8 9 10 11 12
|
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget);
Intent update = new Intent(context, UpdateCard.class);
update.setAction(ACTION_WIDGET_CLICK);
PendingIntent actionPendingIntent = PendingIntent.getActivity(context, 0, update, 0);
remoteViews.setOnClickPendingIntent(R.id.widget_button, actionPendingIntent);
appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
} |
enfin dans la méthode onCreate de l'activity UpdateCard
1 2 3 4 5 6 7 8 9 10 11
|
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.waitprogress);
// Log In
loginDialog = new LogInDialog(this);
okButton = (Button)loginDialog.findViewById(R.id.login_ok_bt);
okButton.setOnClickListener(this);
loginDialog.show();
} |
et dans onClick
1 2 3
|
Button wallet = (Button) this.findViewById(R.id.widget_button);
wallet.setBackgroundResource(R.drawable.open2); |
Mais ça n'a pas marché, erreur vient de
wallet.setBackgroundResource(R.drawable.open2);
quelqu'un a une idée?
merci
Partager