在Android活动之间传递字符串

时间:2017-09-26 14:38:50

标签: java android android-intent

我有一个列表活动,当用户按下一个订单项时,它会将记录的ID传递给下一个活动。

Intent intent = new Intent(CustomerListActivity.this, CustomerEditActivity.class);
intent.putExtra("CUSTOMER_ID", id);

startActivity(intent);

我可以在调试该活动时看到intent中的数据;但是,当我进入下一个活动时,数据不会出现以下代码。

Intent i = getIntent();
Bundle b = i.getExtras();
String s = b.getString("CUSTOMER_ID");

我已经在变量窗口中进行了调试和调试,但是我没有像上一次活动那样看到Customer_ID =#值。

5 个答案:

答案 0 :(得分:1)

您应该致电String s = b.getStringExtra("CUSTOMER_ID");

答案 1 :(得分:0)

您必须在New Activity中调用getStringExtra()方法以从Intent中检索值。

例如:

String custIdInNewAct= getIntent().getStringExtra("CUSTOMER_ID"); 

答案 2 :(得分:0)

Bundle包含调用活动发送的数据

Bundle b = getIntent().getExtras();
String s = b.getString("CUSTOMER_ID")`;

答案 3 :(得分:0)

试试这个。它会工作。在你想要从意图中获取数据的下一个活动中使用它。

 String s= getIntent().getExtras().get("CUSTOMER_ID")+"";

答案 4 :(得分:0)

这是你如何以正确的方式做到的

//main activity
Intent intent = new Intent(getActivity(), TargetActivity.class);
intent.putExtra("ParamKey", "key_value");
getActivity().startActivity(intent);

****
//TargetActivity
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.target_activity_layout);

    Bundle extras = getIntent().getExtras();

    if (extras != null) {
        if (extras.get("ParamKey") != null)
            paramValue= extras.getString("ParamKey", "default_value");
    }