1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

Mehrere OnClick bei Widget für das selbe Intent

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Inuyashaxp, 31.07.2011.

  1. Inuyashaxp, 31.07.2011 #1
    Inuyashaxp

    Inuyashaxp Threadstarter Junior Mitglied

    Beiträge:
    30
    Erhaltene Danke:
    0
    Registriert seit:
    20.12.2010
    Und zwar hab ich ein Widget mit einem Service und der Service Updated 3 LinearLayouts.

    Ich möchte auf jedes LinearLayout ein SetOnClickPendingIntent mit unterschiedlichen Extra setzen.

    Aber wenn ich das Widget starte und auf eines der LinearLayouts klicke, dann ist nur das letzte anklickbar. Weiß jemand Rat? Danke.

    Code:
    RemoteViews remoteViews = new RemoteViews(getPackageName(),
            R.layout.widget_layout);
    
    
    for (int widgetId : appWidgetIds) {
    
    
        int[] lls = { R.id.ll_con_1, R.id.ll_con_2, R.id.ll_con_3 };
    
    
            for (int i = 0; i < jray.length(); i++) {
    
                        try {
    
                            JSONObject o = jray.getJSONObject(i);
    
                            //Onclick
                                if(i == 0)
                                {
                                    Intent msg_intent = new Intent(getApplicationContext(), MSGsOpenMsg.class);
                                    msg_intent.putExtra("messageid", o.getString("id"));
                                    PendingIntent msg_pendingIntent = PendingIntent.getActivity(
                                            getApplicationContext(), 0, msg_intent, Intent.FLAG_ACTIVITY_NEW_TASK);
                                    remoteViews.setOnClickPendingIntent(R.id.ll_con_1, msg_pendingIntent);
                                }
                                else if(i == 1)
                                {           
                                    Intent msg_intent1 = new Intent(getApplicationContext(), MSGsOpenMsg.class);
                                    msg_intent1.putExtra("messageid", o.getString("id"));
                                    PendingIntent msg1_pendingIntent = PendingIntent.getActivity(
                                            getApplicationContext(), 0, msg_intent1, Intent.FLAG_ACTIVITY_NEW_TASK);
                                    remoteViews.setOnClickPendingIntent(R.id.ll_con_2, msg1_pendingIntent);
                                }
                                else if(i == 2)
                                {
                                    Intent msg_intent = new Intent(getApplicationContext(), MSGsOpenMsg.class);
                                    msg_intent.putExtra("messageid", o.getString("id"));
                                    PendingIntent msg2_pendingIntent = PendingIntent.getActivity(
                                            getApplicationContext(), 0, msg_intent, Intent.FLAG_ACTIVITY_NEW_TASK);
                                    remoteViews.setOnClickPendingIntent(R.id.ll_con_3, msg2_pendingIntent);
                                }
    
                        } catch (JSONException e) {
    
                        }
            }
    
    }
     
  2. Inuyashaxp, 31.07.2011 #2
    Inuyashaxp

    Inuyashaxp Threadstarter Junior Mitglied

    Beiträge:
    30
    Erhaltene Danke:
    0
    Registriert seit:
    20.12.2010
    Selber auf die Lösung gekommen.

    Musste den 3 PendingIntends unterschiedliche requestCodes zuweisen, sprich ich hab einfach Variable i genommen.

    Grüße
     

Diese Seite empfehlen