我正在尝试将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
。
答案 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()