2017-05-28 4 views
0

Ich habe Probleme herauszufinden, wie Informationen über einen Aktivitätsschalter weitergeleitet werden.
Ich habe derzeit eine Aktivität, wo ich einen Client zur Datenbank hinzufügen kann, und ich habe eine Aktivität, um alle Clients in einem ListView anzuzeigen.Weitergabe von Informationen über einen Aktivitätsschalter

Was ich will ist, dass, wenn der Benutzer auf einen Client in der ListView klickt, damit es zurück zur addclient Aktivität geht, mit allen Feldern aus der Datenbank gefüllt.

hier ist die Aktivität in dem der Benutzer die Kunden

public class ViewClientActivity extends Activity 
{ 
    protected void onCreate(Bundle savedInstanceState) 
    { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.viewclient_activity); 

    DBHandler handler = new DBHandler(this, null, null, 1); 
    SQLiteDatabase db = handler.getWritableDatabase(); 
    final Cursor ClientCursor = db.rawQuery("SELECT * FROM clients", null); 
    ListView allClients = (ListView) findViewById(R.id.allClients); 
    final ClientCursorAdapter clientAdapter = new ClientCursorAdapter(this, ClientCursor); 

    allClients.setAdapter(clientAdapter); 

    allClients.setOnItemClickListener(new AdapterView.OnItemClickListener() 
    { 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
     { 
      Intent AddClientActivity = new Intent(getApplicationContext(), AddClientActivity.class); 
      startActivity(AddClientActivity); 
     } 
    }); 

} 
} 
+0

Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen – Shawnzey

+0

Dort haben Sie eine Antwort . Bitte lassen Sie mich wissen, wenn Sie mehr Erklärungen dazu wünschen – droidpl

+0

danke Sir, geben Sie mir einen Schuss – Shawnzey

Antwort

0

Dies ist, was ich den i

benötigten Informationen zu tun am Ende passieren
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() 
    { 
     public void onItemClick(AdapterView<?> parent, View v, int position, long id) 
     { 
      IMAGES = imagesPath[0] + "|" + imagesPath[1] + "|" + imagesPath[2] + "|" + 
         imagesPath[3] + "|" + imagesPath[4] + "|" + imagesPath[5]; 

      Intent intent = new Intent(AddClientActivity.this, ImageViewActivity.class); 
      intent.putExtra("IMAGES", IMAGES); 
      intent.putExtra("POSITION", position); 
      startActivity(intent); 
     } 
    }); 
1

Sie benötigen betrachtet der Client-Klasse Informationen implementiert Parcelable Klasse zu machen. Auf diese Weise können Sie diese Informationen in die Intent hinzufügen, die Sie zum Öffnen der zweiten Aktivität verwenden. Aus der zweiten Aktivität, können Sie diese Informationen aus dem erhaltenen Bündel erhalten durch den Aufruf getIntent()

Um die Parcelable Daten in de Absicht Verwendung hinzufügen intent.putExtra() und es bekommen von ihm intent.getParcelableExtra()

+0

Wenn alle Felder Builtins sind, dann ist es so einfach wie 'intent.getStringExtra (Schlüssel, Standard)' für Strings :) Überprüfen Sie diesen Link für weitere Informationen https://stackoverflow.com/questions/2091465/how-doi-i-pass-data-between-activities-in-android- application –

+0

Ich erkläre nur das vollständige Objekt Fall-Szenario :) – droidpl

0

verwenden, wenn er auf einen Klick Client in der Listenansicht für sie die AddClient Aktivität zurück zu gehen, aber mit allen Feldern gefüllt aus der Datenbank in

Wenn Sie „zurückgehen“, können Sie ein SELECT * tun, so wird alles ausgewählt und co aktualisiert werden in der Annahme, dass es in der Datenbank aktualisiert wurde.

Ihre Aufgabe besteht darin, innerhalb der AddClientActivity eine new DBHandler zu erstellen und Ihre Daten entsprechend zu aktualisieren.

Wenn Sie irgendetwas passieren, wäre es die ID der Zeile sein, auf den geklickt wurde, die Sie setTag innerhalb der ClientCursorAdapter Klasse getView Methode auf den aufgeblasenen Ansicht platzieren können. Dann, (Long) view.getTag() im Klick erhalten.

Auch bitte nutzen getReadableDatabase() für Cursor

Verwandte Themen