将字符串从edittext传递到新意图会产生错误

时间:2013-05-07 14:24:24

标签: android string android-intent android-edittext

我正在尝试将string的值传递给我从EditText框中获取的下一个意图。

final EditText et1 = (EditText) findViewById(R.id.editText1); 
final String userid = et1.getText().toString();

final EditText et2 = (EditText) findViewById(R.id.editText2);
final String pass = et2.getText().toString();

b1.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {               
        Intent i= new Intent(Main.this, Main1.class);
        i.putExtra("userid",userid);
        i.putExtra("pass",pass);
        startActivity(i);
    }
});

在Main1.class中,我有以下代码......

Intent i= getIntent();
String userid = i.getStringExtra("userid");
String pass = i.getStringExtra("pass");

但是我收到了一个错误。检查logcat后,我发现错误在这一行:

String userid = i.getStringExtra("userid");

我想虽然我不知道真正的问题是什么,但我正试图错误地接收字符串。难道我做错了什么?通过意图发送和接收字符串的正确方法是什么?如果还有其他方法,请帮帮我。 我的两个类都扩展了Activity并实现了OnClickListener

3 个答案:

答案 0 :(得分:3)

这样做

你应该尝试在onClickEvent

中获取元素
final EditText et1 = (EditText) findViewById(R.id.editText1); 

final EditText et2 = (EditText) findViewById(R.id.editText2);

b1.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {       

        String userid = et1.getText().toString(); 
        String pass = et2.getText().toString();     

        Intent i= new Intent(Main.this, Main1.class);
        i.putExtra("userid",userid);
        i.putExtra("pass",pass);

        startActivity(i);
    }
});

答案 1 :(得分:0)

解决了这个问题。我实际上是在OnCreate方法之外尝试该代码。傻我。我只是把它放在OnCreate方法里面就可以了。

答案 2 :(得分:0)

你可以这样做

    'final EditText et1 = (EditText) findViewById(R.id.editText1); 

final EditText et2 = (EditText) findViewById(R.id.editText2);

b1.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {       

        String userid = et1.getText().toString(); 
        String pass = et2.getText().toString();     

        Intent i= new Intent(Main.this, Main1.class);
        i.putExtra("userid",userid);
        i.putExtra("pass",pass);

        startActivity(i);
    }
});'

并且,像这样接收

Intent i= getIntent();
String userid = i.get("userid").toString();
String pass = i.get("pass").toString();

问题是你只有在你可以分配

后才收到字符串 toString()