我想将两个值传递给另一个活动,我可以使用putExtra这样做,还是我必须以更复杂的方式执行此操作,这从我的阅读中可以看出来.例如.可以这样的工作吗?
public final static String ID_EXTRA="com.fnesse.beachguide._ID";
Intent i = new Intent(this, CoastList.class);
i.putExtra(ID_EXTRA, "1", "111");
startActivity(i);
Run Code Online (Sandbox Code Playgroud)
以上给出了错误.
编辑
我尝试的第一件事类似于:
i.putExtra(ID_EXTRA1, "1");
i.putExtra(ID_EXTRA2, "111");
Run Code Online (Sandbox Code Playgroud)
但ID_EXTRA2似乎写在ID_EXTRA1上
所以,
i.putExtra(ID_EXTRA, new String[] { "1", "111"});
Run Code Online (Sandbox Code Playgroud)
看起来像go,但如何在第二个活动中从数组中提取值,我一直在使用它作为单个值.
passedVar = getIntent().getStringExtra(CoastList.ID_EXTRA);
Run Code Online (Sandbox Code Playgroud)
我想我必须以某种方式将ID_EXTRA变成一个数组???
小智 141
如果你愿意的话,你可以传递额外的'捆绑'而不是个别的额外内容,例如: -
Intent intent = new Intent(this, MyActivity.class);
Bundle extras = new Bundle();
extras.putString("EXTRA_USERNAME","my_username");
extras.putString("EXTRA_PASSWORD","my_password");
intent.putExtras(extras);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
然后在你的Activity中你的触发,你可以像这样引用这些: -
Intent intent = getIntent();
Bundle extras = intent.getExtras();
String username_string = extras.getString("EXTRA_USERNAME");
String password_string = extras.getString("EXTRA_PASSWORD");
Run Code Online (Sandbox Code Playgroud)
或者(如果你愿意): -
Bundle extras = getIntent().getExtras();
String username_string = extras.getString("EXTRA_USERNAME");
String password_string = extras.getString("EXTRA_PASSWORD");
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!:-)
小智 24
您可以使用多个键传递多个值.代替
i.putExtra(ID_EXTRA, "1", "111");
Run Code Online (Sandbox Code Playgroud)
做
i.putExtra(ID_EXTRA1, "1");
i.putExtra(ID_EXTRA2, "111");
Run Code Online (Sandbox Code Playgroud)
当然,您必须为键定义2个常量,并且必须在新活动中单独读取.
或者你可以传递一个字符串数组
i.putExtra(ID_EXTRA, new String[] { "1", "111"});
Run Code Online (Sandbox Code Playgroud)
Abh*_*bhi 11
在课堂上增加额外的价值
public class MainActivity extends Activity {
public final static String USERNAME = "com.example.myfirstapp.MESSAGE";
public final static String EMAIL = "com.example.myfirstapp.EMAIL";
public void registerUser(View view) {
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText userNameTxt = (EditText) findViewById(R.id.editText1);
EditText emailTxt = (EditText) findViewById(R.id.editText2);
String userName = userNameTxt.getText().toString();
String email = emailTxt.getText().toString();
intent.putExtra(USERNAME, userName);
intent.putExtra(EMAIL,email);
startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)
从另一个类中读取额外的值
public class DisplayMessageActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
String user = intent.getStringExtra(MainActivity.USERNAME);
String email = intent.getStringExtra(MainActivity.EMAIL);
Run Code Online (Sandbox Code Playgroud)