0

我已经做了一个打算,我已经在里面放了 2 个额外的东西

Intent intent = new Intent(MainActivity.this, Options.class);
                TextView labelName = (TextView) findViewById(R.id.label1); // value = "Counter1"
                TextView label2Name = (TextView) findViewById(R.id.label2); // value = "Counter 2"
                String lblNameDefault = labelName.getText().toString();
                String lbl2NameDefault = label2Name.getText().toString();
                intent.putExtra(LABEL_NAME_DEFAULT, lblNameDefault);
                intent.putExtra(LABEL_2_NAME_DEFAULT, lbl2NameDefault);

在我的其他活动中,我像这样从他们那里检索信息

//Get name from the label
    Intent intent = getIntent();
    String lblNameDefault = intent.getStringExtra(MainActivity.LABEL_NAME_DEFAULT);
    String lbl2NameDefault = intent.getStringExtra(MainActivity.LABEL_2_NAME_DEFAULT);



   //Set current name to editText
    EditText labelNameDefault = (EditText)findViewById(R.id.set_name);
    EditText label2NameDefault = (EditText)findViewById(R.id.set_name2);
    labelNameDefault.setText(lblNameDefault, TextView.BufferType.EDITABLE);
    label2NameDefault.setText(lbl2NameDefault, TextView.BufferType.EDITABLE);

问题是我从 LABEL_2_NAME_DEFAULT 接收到 labelNameDefault 和 label2NameDefault 结果。

我只能通过一个额外的吗?我怎样才能通过它们?

默认情况下,labelName 的值为“计数器 1”,label2Name 的值为“计数器 2”

如果我注释掉intent.putExtra(LABEL_2_NAME_DEFAULT, lbl2NameDefault);第一个标签名称就可以了。看起来 LABEL_2_NAME_DEFAULT 正在覆盖 LABEL_NAME_DEFAULT

4

3 回答 3

1

如果您愿意,您可以传递额外的“捆绑”而不是单独的额外,例如:-

Intent intent = new Intent(this, MyActivity.class);
Bundle extras = new Bundle();
extras.putString("LABEL_NAME_DEFAULT",lblNameDefault);
extras.putString("LABEL_2_NAME_DEFAULT",lbl2NameDefault);
intent.putExtras(extras);
startActivity(intent);
Then in your Activity that your triggering, you can reference these like so:-

Intent intent = getIntent();
Bundle extras = intent.getExtras();
String username_string = extras.getString("LABEL_NAME_DEFAULT");
String password_string = extras.getString("LABEL_2_NAME_DEFAULT");
Or (if you prefer):-

Bundle extras = getIntent().getExtras();
String username_string = extras.getString("LABEL_NAME_DEFAULT");
String password_string = extras.getString("LABEL_2_NAME_DEFAULT");

Hope this helps! :-)
于 2012-08-04T01:37:29.357 回答
0

活动一

Intent intent = new Intent(MainActivity.this, Options.class);
            TextView labelName = (TextView) findViewById(R.id.label1); // value = "Counter1"
            TextView label2Name = (TextView) findViewById(R.id.label2); // value = "Counter 2"
            String lblNameDefault = labelName.getText().toString();
            String lbl2NameDefault = label2Name.getText().toString();
            intent.putExtra("LABEL_NAME_DEFAULT", lblNameDefault);
            intent.putExtra("LABEL_2_NAME_DEFAULT", lbl2NameDefault);

活动二

 username_string = getIntent().getExtras().getString("LABEL_NAME_DEFAULT");
 password_string = getIntent().getExtras().getString("LABEL_2_NAME_DEFAULT");
于 2012-08-04T03:30:21.447 回答
0

您可以在一个意图中传递两个(或更多)额外内容。不过,您需要确保LABEL_2_NAME_DEFAULTLABEL_NAME_DEFAULT不具有相同的值。

于 2012-08-04T00:07:22.783 回答