J'ai 2 mises en page possibles de widget que l'utilisateur peut changer via l'activité de préférence, je veux dire la lumière et l'obscurité. Les deux semblent simillaires, les couleurs onlu sont différentes. Les identifiants d'événement sont les mêmes. Je veux donner la possibilité de cliquer sur tout le widget, ce qui va ouvrir l'activité et envoyer des données nécessaires via l'intention. Mon code dans AppWidgetProvider ne fonctionne pas du tout.Android - Widget cliquez sur l'écouteur ne fonctionne pas
Ici, il est:
private final String ACTION = "CLICK_MY_BUTTON";
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
super.onUpdate(context, appWidgetManager, appWidgetIds);
SharedPreferences theme = Data.getPreferences(context, Data.Prefs.THEME);
boolean dark = theme.getString(Data.widgetsThemeSetings, "1").equals("1");
int layoutId = dark?R.layout.widget_dark:R.layout.widget_light;
for (int i:appWidgetIds) {
Intent intent = new Intent(context, MainActivity.class);
intent.putExtra("from", "widget");
intent.setAction(ACTION);
int id = Calendar.getInstance().get(Calendar.DAY_OF_YEAR);
intent.putExtra("id", id<60?id:id-1);
intent.putExtra("widgetID", i);
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), layoutId);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 1, intent, 0);
remoteViews.setOnClickPendingIntent(R.id.widget_relative_main, pendingIntent);
String output = "";
for (String s:HolidayCalendar.getInstance(context).getTodayTexts()) {
output += "\n\n" + Data.pointer + " " + s;
}
remoteViews.setTextViewText(R.id.widget_text_holiday, output.substring(2));
appWidgetManager.updateAppWidget(i, remoteViews);
}
}
et un de mes mises en page widget:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widget_relative_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/rounded_widget_dark"
android:orientation="vertical" >
<TextView
android:id="@+id/widget_text_today"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="center"
android:text="@string/today_is"
android:textColor="#FFF"
android:textSize="20sp" />
<TextView
android:id="@+id/widget_text_holiday"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/widget_text_today"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:textColor="#FFF" />
</RelativeLayout>
Comment faire fonctionner? Je n'ai aucune idée de ce qui peut être incorrect ...
Souhaitez-vous un événement clickview click? – Rasel
@Rasel Je souhaite un clic à l'ensemble d'un widget – Andret