1

我正在尝试将 2 个参数从一个活动发送到另一个活动,但由于某种原因,只有一个参数被传递。会是什么呢?

发送活动:

showActivity(OrderActivity.class, new Pair("CUSTOMER_ID", customerId), new Pair("CUSTOMER_TYPE", customerType));

接收活动:客户 ID 显示为 0,但类型数据已获取

Bundle extras = getIntent().getExtras();

    long customerId = extras.getLong("CUSTOMER_ID");
    int customerType = extras.getInt("CUSTOMER_TYPE");
    Log.d("===customer ", " id : " + customerId + "  type : " + customerType);

showActivity看起来像这样

protected void showActivity(Class<? extends BaseKaizenActivity> clazz, Pair<String, Object> ... parameters) {
    Intent intent = new Intent(this, clazz);
    if (parameters != null) {
        for (Pair<String, Object> pair : parameters) {
            if (pair.second instanceof Integer) {
                intent.putExtra(pair.first, (Integer)pair.second);  
            }
            else if (pair.second instanceof Parcelable) {
                intent.putExtra(pair.first, (Parcelable)pair.second);
            }
        }
    }
    startActivity(intent);
}
4

2 回答 2

1
if (pair.second instanceof Integer) {
                intent.putExtra(pair.first, (Integer)pair.second);  
            }
            else if (pair.second instanceof Parcelable) {
                intent.putExtra(pair.first, (Parcelable)pair.second);
            }

好像你忘记为 Long 写一个子句。它既不属于 if 也不属于 else if,所以没有被放入额外数据中。

于 2012-09-12T07:08:06.407 回答
0

你为什么用那个?只需使用 put 和 get 意图方法,它非常简单。例如。

intent.putExtra("backPressed", true);
getIntent().getBooleanExtra("backPressed", false);

这是我的工作代码,没有问题。

于 2012-09-12T07:10:59.427 回答