2010-12-15 7 views
2

J'ai une liste où chaque élément est une ligne dans une table sqlite, j'essaie de passer l'identifiant de ligne de l'élément sur lequel ils ont cliqué d'une activité à l'autre. est ici la méthode im essayant de mettre en place l'activité A,Comment utiliser putExtra/get_Extra lorsque je travaille avec des intentions?

public static final int REQUEST_CODE=0; //variable used when i want to startActivityForResult.. 

public void ListItemCommonIntent(long id, View view){ 
    Log.i("Blah", "current item pressed is" + id); 
    Intent keypadIntent = new Intent(view.getContext(), Keypad.class); 
    keypadIntent.putExtra(Keypad.selectedRowId, id); 
    startActivityForResult (keypadIntent, REQUEST_CODE); 
} 

Et voici où je suis en train d'obtenir l'identifiant de l'activité b et le mettre dans selectedRowId

public Long selectedRowId; 
private String findBudgetQuery = "SELECT BUDGET_AMOUNT FROM CAT_BUD_TAB WHERE _ID='" + selectedRowId + "'"; 

public void FindBudgetForId(){ 
    //This method should query for current budget and.. 
    SQLiteDatabase db = budgetData.getWritableDatabase(); 
    selectedRowId = getIntent().getLongExtra(selectedRowId, 1); 
    db.rawQuery(findBudgetQuery, null); 
} 

Cependant, je viens de cant le faire fonctionner, je pense que j'ai besoin de plus d'informations, quelqu'un peut-il expliquer comment utiliser putExtra et obtenir quelque chose de l'autre côté. Je pense que je ne comprends pas complètement les paramètres sur la méthode même.

Répondre

2

Le premier paramètre de putExtra et getExtra doit être une chaîne que vous utilisez pour identifier les informations que vous transmettez. Par exemple:

intent.putExtra("mySelectedRowId", rowId); 

Vous pouvez utiliser cette même clé pour chercher les informations plus tard, le second paramètre étant une valeur par défaut à utiliser si la clé est introuvable:

selectedId = intent.getLongExtra("mySelectedRowId", 1); 
4

Démarrage d'une intention avec un champ supplémentaire.

public void onClick(DialogInterface dialog, int id) { 
     Intent intent = new Intent(mContext, org.gpsagenda.DetailsContainer.class); 
     intent.putExtra("id", item.ID()); 
     mContext.startActivity(intent); 
    } 

Obtention du champ supplémentaire dans l'activité démarrée.

int id = getIntent().getExtras().getInt("id"); 

Prenez garde cependant que vous pouvez obtenir null si Extra est pas défini!

Questions connexes