有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在使用Intent时如何使用putExtra/get_Extra?

我有一个列表,其中每个项目都是sqlite表中的一行,我试图将他们单击的项目的行id从一个活动传递到下一个活动。 这是我在活动A中尝试设置的方法

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和得到的东西在另一边。我想我还没有完全理解偶数法的参数


共 (2) 个答案

  1. # 1 楼答案

    用一个额外的字段开始一个意图

       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

  2. # 2 楼答案

    putExtra和getExtra的第一个参数应该是一个字符串,用于标识正在传递的信息。例如:

    intent.putExtra("mySelectedRowId", rowId);
    

    以后可以使用同一个键来获取信息,第二个参数是在找不到该键时使用的默认值:

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