2010-12-15 50 views
2

我有一個列表,其中每個項目是一個sqlite表中的行,我試圖將他們從一個活動點擊的項目的行ID傳遞給下一個。 這裏的方法我嘗試設置在活動A,如何在使用意圖時使用putExtra/get_Extra?

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

這裏的地方我都試着在b活動的ID,並把它在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); 
} 

但是我只是不能讓它工作,我想我需要更多的信息,有人可以解釋如何使用putExtra和在別人身上獲取某些東西。我想我並不完全理解even方法的參數。

回答

2

putExtra和getExtra的第一個參數應該是一個字符串,用於標識您傳遞的信息。例如:

intent.putExtra("mySelectedRowId", rowId); 

您可以使用此相同的密鑰信息後獲取,第二個參數是一個默認值來使用,如果關鍵是沒有找到:

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

用額外的字段開始一個意圖。

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

獲取已啓動活動中的額外字段。

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

要小心的是,你可以得到null如果額外未設置!