
kukuk
App-Anbieter (kostenlos)
- 37
Hallo alle zusammen.
Ich habe 1 Button, 2 Textviews und 1 ImageView auf meiner Widget Activity.
Der Button lässt sich anklicken und führt auch code aus. Mein ImageView lässt sich auch anklicken (Klack ton) aber führt keinen Code aus. Habe schon die wildesten kombinationen durch. Aber leider bekomm ich es einfach nicht hin..
Ich poste mal den relevanten code und hoffe das mir hier jemand helfen kann?
MyWidgetProvider.java
MyWidgetIntentReceiver
Wie gesagt updateWidgetPictureAndButtonListener funktioniert einwandfrei. Nur der neu hinzugefügten ImageView geht nicht.
Ich habe 1 Button, 2 Textviews und 1 ImageView auf meiner Widget Activity.
Der Button lässt sich anklicken und führt auch code aus. Mein ImageView lässt sich auch anklicken (Klack ton) aber führt keinen Code aus. Habe schon die wildesten kombinationen durch. Aber leider bekomm ich es einfach nicht hin..
Ich poste mal den relevanten code und hoffe das mir hier jemand helfen kann?
MyWidgetProvider.java
Code:
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.activity_widget_demo);
remoteViews.setOnClickPendingIntent(R.id.widget_button, buildButtonPendingIntent(context));
remoteViews.setOnClickPendingIntent(R.id.imageView1, buildImagePendingIntent(context));
pushWidgetUpdate(context, remoteViews);
}
public static PendingIntent buildButtonPendingIntent(Context context) {
Intent intent = new Intent();
intent.setAction("com.arbeitszeit_kalkulator_pro.intent.action.CHANGE_PICTURE");
return PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
public static PendingIntent buildImagePendingIntent(Context context) {
Intent intent = new Intent();
intent.setAction("com.arbeitszeit_kalkulator_pro.intent.action.REFRESH_OVERTIME");
return PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
Code:
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals("com.arbeitszeit_kalkulator_pro.intent.action.CHANGE_PICTURE")){
updateWidgetPictureAndButtonListener(context);
}
if(intent.getAction().equals("com.arbeitszeit_kalkulator_pro.intent.action.REFRESH_OVERTIME")){
updateOvertime(context);
}
}
private void updateOvertime(Context context) {
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.activity_widget_demo);
//remoteViews.setImageViewResource(R.id.widget_image, getImageToSet());
gesamt_stunden_ermitteln(context);
remoteViews.setTextViewText(R.id.textView1, "hjadfhs" + Global.globale_ueberstunden);
//REMEMBER TO ALWAYS REFRESH YOUR BUTTON CLICK LISTENERS!!!
remoteViews.setOnClickPendingIntent(R.id.imageView1, MyWidgetProvider.buildImagePendingIntent(context));
MyWidgetProvider.pushWidgetUpdate(context.getApplicationContext(), remoteViews);
}
private void updateWidgetPictureAndButtonListener(Context context) {
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.activity_widget_demo);
//remoteViews.setImageViewResource(R.id.widget_image, getImageToSet());
if (Global.stempeluhr_widget){
if (Global.is_german){
remoteViews.setTextViewText(R.id.widget_button, "Anhalten");
remoteViews.setTextViewText(R.id.textView001, "Überstunden Stempeluhr");
}else{
remoteViews.setTextViewText(R.id.widget_button, "Stop");
remoteViews.setTextViewText(R.id.textView001, "Overtime time clock");
}
Global.stempeluhr_widget = false;
stempel_datei_starten();
}else{
if (Global.is_german){
remoteViews.setTextViewText(R.id.widget_button, "Starten");
}else{
remoteViews.setTextViewText(R.id.widget_button, "Start");
}
Global.stempeluhr_widget = true;
stempel_datei_abspeichern();
if (Global.stempeluhr_datums_fehler){
if (Global.is_german){
remoteViews.setTextViewText(R.id.textView001, "Überstunden Stempeluhr \nFehler: \nÜbergreifendes Datum nicht möglich");
}else{
remoteViews.setTextViewText(R.id.textView001, "Overtime time clock \nError: \nCross-date not possible");
}
Global.stempeluhr_datums_fehler = false;
}else{
if(Global.is_german){
remoteViews.setTextViewText(R.id.textView001, "Überstunden Stempeluhr");
}else{
remoteViews.setTextViewText(R.id.textView001, "Overtime time clock");
}
}
}
//REMEMBER TO ALWAYS REFRESH YOUR BUTTON CLICK LISTENERS!!!
remoteViews.setOnClickPendingIntent(R.id.widget_button, MyWidgetProvider.buildButtonPendingIntent(context));
MyWidgetProvider.pushWidgetUpdate(context.getApplicationContext(), remoteViews);
}
Wie gesagt updateWidgetPictureAndButtonListener funktioniert einwandfrei. Nur der neu hinzugefügten ImageView geht nicht.