2013-03-17 7 views
7

hier ist mein Code für Daten, die von der Absicht zu senden, aber ich möchte nicht, eine andere Tätigkeit öffnen Ich möchte nur die Daten senden, ohne sie zu öffnen ..So senden Sie Daten über Intent in Android, ohne eine andere Aktivität zu öffnen?

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); 

hier will ich nicht diese Searchbyitem öffnen. Klasse senden Sie einfach die Daten ...

+0

Und dann für das, was Sie Daten senden möchten? es macht keinen Sinn für mich. – Sajmon

+1

@sajmon Ich sende diese Daten, um sie in einer anderen Aktivität anzuzeigen, möchte sie aber nicht über diese Aktivität öffnen. Macht das jetzt für Sie Sinn? – scripter

+2

jetzt ja Entschuldigung> :) Sie können jetzt Werte in SharedPreferences speichern und sie dann abrufen, wann immer Sie wollen. – Sajmon

Antwort

3

Sie auch SharedPreferences dass Sie EventBus oder Otto Android Bibliotheken versuchen

1

archieve verwenden Anruf zwischen Tätigkeiten, Dienstleistungen und Fragmente zu kommunizieren ..

So sollten Sie erstellen Ein Dienst zum Übergeben von Daten und zur Kommunikation zwischen Aktivitäten, Fragmenten usw. verwendet einen Ereignisbus.

3

Y Es habe ich auch dieses Problem konfrontiert.

Viele Entwickler sehen sich auch Problemen gegenüber, wenn sie Daten über Dialog oder eine andere Aktivität durch Intent oder Bundle übergeben. Es gibt null zum Zeitpunkt der Abfrage von einer anderen Aktivität zurück.

Und die einzige Lösung ist SharedPreferences.

Aber Sie haben es in der Schaltfläche entlassen zu platzieren. (Ex: ok/Abbrechen usw.)

und die Daten von einer anderen Aktivität leicht durch den gleichen Schlüssel abrufen. Verwenden Sie keinen Dienst, gefolgt von Sendeabsicht.

Der Code im Dialog Aktivität ist wie folgt:

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(); 

    } 

}); 

Und von der anderen die Daten wie folgt holen:

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

einige checkings für einen guten Standard hinzufügen.

Vielen Dank

Verwandte Themen