2010-12-15 51 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如果额外未设置!