2013-01-11 3 views
1

J'essaie de transmettre l'ID du clic sur les données de ma liste à une nouvelle activité dans une deuxième classe, c'est-à-dire que je clique sur l'élément sur le listview. La méthode onListItemClick est appelée et commence une nouvelle intention. L'id est passé avec l'objet dans le i.getExtra. Ensuite, l'id est stocké dans une nouvelle variable sur la deuxième classe à utiliser plus tard. J'ai même essayé de savoir comment passer l'identifiant, mais je n'arrive pas à comprendre comment je le stocke dans la nouvelle variable de la deuxième classe.Passer un ID sur une intention

Heres mon code:

public void onListItemClick(ListView list, View v, int list_posistion, long item_id) 
{ 


    long id = item_id; 
    Intent i = new Intent("com.example.sqliteexample.SQLView"); 
    i.putExtra(null, id); 
    startActivity(i); 
} 

Quelqu'un pourrait-il me dire comment faire référence dans la deuxième classe?

Répondre

0

Vous devez obtenir le paquet de l'intention, puis obtenir ... pour obtenir un élément particulier.

Bundle extras = getIntent().getExtras(); 
String id; 

if (extras != null) { 
    id= extras.getString("key"); //key should be what ever used in invoker. 
} 

Une chose surprenante est la raison pour laquelle vous utilisez null comme la clé? J'éviter d'utiliser des mots de réserve, au lieu d'utiliser le nom propre comme userID etc.,

0
Intent intent = new Intent("com.example.sqliteexample.SQLView"); 
        Bundle bundle = new Bundle(); 
        bundle.putString("position", v.getTag().toString()); 
        intent.putExtras(bundle); 
        context.startActivity(intent); 

dans la deuxième classe

Bundle intent= getIntent().getExtras(); 

     if (intent.getExtras() == null) { 
    id= intent.getString("position"); 
    } 

Hope this helps

0

Il est très simple.
il suffit de changer:

i.putExtra(null, id); 

avec:

i.putExtra("myId", id); 

et dans la deuxième activité simplement utiliser:

Bundle extras = getIntent().getExtras(); 
if (extras != null) { 
    String value = extras.getInt("myId"); 
} 
0

Le premier paramètre pour Intent.putExtra() est une clé de chaîne utilisée pour identifier votre supplémentaire . Au lieu de i.putExtra(null, id), essayez i.putExtra("SomeString", id).

Puis, dans le onCreate (ou ne importe où dans) votre deuxième activité, vous pouvez obtenir votre ID de retour de l'intention comme ceci:

Intent intent = getIntent(); 
long id = intent.getLongExtra("SomeString"); 

Il existe aussi des méthodes pour obtenir Strings, Chars, booléens, Ints, et des structures de données plus complexes. Cochez ici: http://developer.android.com/reference/android/content/Intent.html pour plus d'informations sur les méthodes de la classe Intent.

Questions connexes