Autore Topic: Problema nel passare dati da un Widget che chiama un'activity  (Letto 544 volte)

Offline n3tmaster

  • Utente junior
  • **
  • Post: 96
  • Respect: 0
    • Google+
    • lerocchi
    • Mostra profilo
  • Dispositivo Android:
    Nexus 4 - Nexus 7 - PadFone JB
  • Sistema operativo:
    Mac OSX 10.7
Problema nel passare dati da un Widget che chiama un'activity
« il: 20 Dicembre 2012, 15:43:13 CET »
0
Salve a tutti,
in queste ore sto sbattendo la testa su un problema che non riesco proprio a risolvere.

Ho un widget con un pulsante, cliccando il quale, apre un'activity passandogli alcuni valori tramite il putExtra...
Il problema che ho riscontrato è che l'activity richiamata, quando richiama gli extras, non restituisce valori che ho passato.

Il mio Widget è gestita dalla seguente classe

Codice (Java): [Seleziona]
public class Widgets1 extends AppWidgetProvider{
        private GTMDB db;
        private GTMDBfuncs dbFuncs;
        private Cursor cursor,viaggiatoriCursor;
       
        public static String ACTION_WIDGET_CONFIGURE = "ConfigureWidget";
        public static String ACTION_WIDGET_RECEIVER = "ActionReceiverWidget";
       
        @Override
        public void onEnabled(Context context) {
                // TODO Auto-generated method stub
                super.onEnabled(context);
               
                 SharedPreferences preferences = PreferenceManager
                        .getDefaultSharedPreferences(context);

                String deviceId = Utils.getId(context.getApplicationContext());
               
               
                Log.i("Main:onEnabled widget", deviceId);
        }
       
       
        @Override
        public void onUpdate(Context context, AppWidgetManager appWidgetManager,
                        int[] appWidgetIds) {
                super.onUpdate(context, appWidgetManager, appWidgetIds);
                       
                //...
                //...
                //...
               
                //premendo il pulsante del widget si apre un'activity
                Intent in = new Intent(context, MiaActivity.class);    //Activity che voglio chiamare dal widget
                in.putExtra("parametro1",1);
                in.putExtra("parametro2", 2);
                in.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TOP);
             
                PendingIntent pi = PendingIntent.getActivity(context, 0, in, PendingIntent.FLAG_CANCEL_CURRENT);
                rv.setOnClickPendingIntent(R.id.bottoneWidget, pi);

                //...
                //...

        }
       
       
}


questa è la onCreate dell'activity

Codice (Java): [Seleziona]
@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_layout);

        miaIntent = this.getIntent();
       
        long param1=miaIntent.getExtras().getLong("parametro1");
       
        long param2=miaIntent.getExtras().getLong("parametro2");

        }

ecco il problema è questo... che in param1 e param2 non viene salvato il valore 1 ma viene salvato il valore zero...insomma sembra che il widget non riesca a passare questi valori...
secondo voi come mai?
Leandro Rocchi
Software Developer - Geodatabase Designer

Offline n3tmaster

  • Utente junior
  • **
  • Post: 96
  • Respect: 0
    • Google+
    • lerocchi
    • Mostra profilo
  • Dispositivo Android:
    Nexus 4 - Nexus 7 - PadFone JB
  • Sistema operativo:
    Mac OSX 10.7
Re:Problema nel passare dati da un Widget che chiama un'activity
« Risposta #1 il: 20 Dicembre 2012, 15:56:45 CET »
0
mmm stranamente funziona se passo una String anziché un Long... mah...
Leandro Rocchi
Software Developer - Geodatabase Designer

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Problema nel passare dati da un Widget che chiama un'activity
« Risposta #2 il: 20 Dicembre 2012, 16:21:23 CET »
+1
se tu ci scrivi 1 e 2 hai messo due interi e non due long.
Devi passarli con 1L e 2L oppure fare getInt
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline n3tmaster

  • Utente junior
  • **
  • Post: 96
  • Respect: 0
    • Google+
    • lerocchi
    • Mostra profilo
  • Dispositivo Android:
    Nexus 4 - Nexus 7 - PadFone JB
  • Sistema operativo:
    Mac OSX 10.7
Re:Problema nel passare dati da un Widget che chiama un'activity
« Risposta #3 il: 20 Dicembre 2012, 17:28:05 CET »
0
eheh si è vero :P
Leandro Rocchi
Software Developer - Geodatabase Designer