繁体   English   中英

放两个额外的意图

[英]Put 2 extras in intent

我已立志将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的值为“ Counter 1”,label2Name的值为“ counter 2”

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

如果愿意,您可以传递“附加”捆绑而不是单个附加,例如:

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! :-)

您可以故意传递两个(或更多)附加功能。 不过,您需要确保LABEL_2_NAME_DEFAULTLABEL_NAME_DEFAULT的值不同。

活动一

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");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM