2

我正在尝试将字符串的值传递给我从 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.

4

3 回答 3

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);
    }
});
于 2013-05-07T14:29:25.513 回答
0

解决了这个问题。我实际上是在 OnCreate 方法之外尝试该代码。傻我。我只是把它放在 OnCreate 方法中,它就起作用了。

于 2013-05-07T14:33:37.590 回答
0

You can do this way

    '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);
    }
});'

And,Receive like this

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

Problem is Your missing when receive string toString() after only you can assign

于 2016-10-05T13:29:40.647 回答