将2个值从一个活动传递给另一个活动

时间:2013-01-17 11:08:10

标签: java android android-intent

我对android很新。 我正在尝试开发练习的登录表单,我无法传递并显示2个值 到另一个活动

Intent intent = new Intent(this, Success.class);
        EditText edituser = (EditText) findViewById(R.id.userinput);
        EditText editpass= (EditText) findViewById(R.id.passinput);
        String username = edituser.getText().toString();
        String password = editpass.getText().toString();

        intent.putExtra(EXTRA_USER, username);
        intent.putExtra(EXTRA_PASSWORD, password);
        startActivity(intent);

目标活动是

 Intent intent = getIntent();
    String username = intent.getStringExtra(MainActivity.EXTRA_USER);
    String password = intent.getStringExtra(MainActivity.EXTRA_PASSWORD);

    // Create the text view
    TextView userView = new TextView(this);
    TextView passView = new TextView(this);
    userView.setTextSize(40);
    userView.setText(username);

    passView.setTextSize(40);
    passView.setText(password);

    // Set the text view as the activity layout
    setContentView(userView);
    setContentView(passView);

3 个答案:

答案 0 :(得分:5)

您的问题是,当您第二次拨打setContentView()时,您会从屏幕上删除旧视图。

尝试将您的视图添加到ViewGroup,如LinearLayout,然后将其添加到屏幕而不是单个视图。

类似的东西:

LinearLayout ll = new LinearLayout(this);
ll.addView(userView);
ll.addView(passView);
setContentView(ll);

答案 1 :(得分:3)

您只获得第二个值,因为您要设置两次视图.. 第二个覆盖用户名..

您可以改为使用addContentView,或者创建一个包含2个文本视图的xml并使用它。

答案 2 :(得分:1)

使用另一种布局并在第二种布局中设置意图值....

setContentView(R.layout.anotherlayout);

TextView user = (TextView) findViewById(R.id.usertext);
TextView pass= (TextView) findViewById(R.id.passtext);

Intent intent = getIntent();
String username = intent.getStringExtra(MainActivity.EXTRA_USER);
String password = intent.getStringExtra(MainActivity.EXTRA_PASSWORD);

user.setText(username);
pass.setText(password);