2013-03-17 8 views
7

Ecco il mio codice per l'invio dei dati da parte di intenti, ma io non voglio aprire un'altra attività Voglio solo inviare i dati senza aprirlo ..Come inviare dati tramite intent in Android senza aprire un'altra attività?

Bundle contain = new Bundle(); 
      contain.putString("key4", item); 
      contain.putString("price", price); 

Intent a = new Intent(Searchbydate.this, Searchbyitem.class); 
      a.putExtras(contain); 
      startActivity(a); 

qui non voglio aprire questa Searchbyitem. classe basta inviare i dati ...

+0

E quindi per ciò che si desidera inviare i dati? non ha senso per me. – Sajmon

+1

@sajmon sto inviando questi dati per mostrare in un'altra attività ma non voglio aprirlo attraverso questa attività, ora ha senso per te? – scripter

+2

ora si dispiace> :) così ora è possibile salvare i valori in SharedPreferences e quindi recuperarli quando lo si desidera. – Sajmon

risposta

3

si chiama anche utilizzare SharedPreferences di raggiungere un 'che

1

Si può provare EventBus o Otto librerie Android per comunicare tra attività, servizi e frammenti ..

Così si dovrebbe creare un servizio per il trasferimento di dati e per la comunicazione tra attività, frammenti ecc. utilizza un bus eventi

3

Y Ho anche affrontato questo problema.

Molti sviluppatori affrontano anche problemi durante il passaggio di dati dalla finestra di dialogo a un'altra attività tramite Intento o Pacchetto. Restituisce null al momento del recupero da un'altra attività.

E l'unica soluzione è SharedPreferences.

Ma bisogna posizionarlo all'interno del pulsante respingere. (Es: OK/Cancel ecc)

e recuperare i dati da un'altra attività facilmente attraverso la stessa chiave. Non utilizzare alcun servizio seguito dall'intento di trasmissione.

Il codice di attività di dialogo è come questo:

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setIcon(R.drawable.mailicon); 
    builder.setTitle(name); 
    builder.setView(view); 

    builder.setPositiveButton("Send Request",new DialogInterface.OnClickListener() 
    { 

    @Override 
    public void onClick(DialogInterface dialog, int which) { 
    String mailID = id.getText().toString(); 

    //Here define all your sharedpreferences code with key and value 
    SharedPreferences prefs = getSharedPreferences("my_prefs", MODE_PRIVATE); 
    SharedPreferences.Editor edit = prefs.edit(); 
    edit.putString("MID", mailID); 
    edit.commit(); 

    } 

}); 

E da un altro recuperare i dati in questo modo:

SharedPreferences bb = getSharedPreferences("my_prefs", 0); 
    String m = bb.getString("NUM", ""); 
    Toast.makeText(this, m, Toast.LENGTH_SHORT).show(); 

aggiungere alcune verifiche per un buon livello.

Grazie

Problemi correlati