意图未在第二个活动中收到

时间:2017-01-19 20:09:31

标签: android android-intent

我有RecyclerView的ListAdapter,其中有一个onClick方法,可以获取用户点击的任何项目的位置,然后将该值传递给 ItemEditActivity

@Override
            public void onClick(View v) {
                String stringo = dataList.get(position).id;

                Intent intent = new Intent(context, ItemEditActivity.class);
                intent.putExtra("ItemNumber", stringo);
                context.startActivity(new Intent(v.getContext(), ItemEditActivity.class));

                Log.d(TAG, stringo + "");
            }

然后,我使用以下代码收到 ItemEditActivity 中的意图:

Intent Intent = getIntent();
                String intValue = Intent.getStringExtra("ItemNumber");

我在 stringo 变量通过之前记录该变量并确认其具有正确的值,但在尝试记录 intValue 时我的第二个活动,值为空。我在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

您正在创建一个Intent,但您没有使用它。

// Your first Intent
Intent intent = new Intent(context, ItemEditActivity.class);
intent.putExtra("ItemNumber", stringo);

// Here, you are creating another Intent
context.startActivity(new Intent(v.getContext(), ItemEditActivity.class));

您只需传递第一个意图:

Intent intent = new Intent(context, ItemEditActivity.class);
intent.putExtra("ItemNumber", stringo);
context.startActivity(intent);

答案 1 :(得分:0)

在第1次活动中

Intent intent = new Intent(MainActivity.this,ClientList.class);
intent.putExtra("ItemNumber", stringo);
startActivity(intent);

在第二视图中,您可以尝试以下

Bundle bundle = getIntent().getExtras(); //get the intent and data  passed
//next check that bundle is not null
if (bundle != null) {
    String intValue = bundle.getString("stringo"); 
    //try loging out the value
    Log.i("value", intValue);
}

这就是我使用意图传递数据的方式。