android - 将字符串从 edittext 传递到新 Intent 会出现错误

标签 android string android-intent android-edittext

我正在尝试将字符串的值传递给我从 EditText 框中获得的下一个 Intent 。

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");

我认为我正在尝试错误地接收字符串,尽管我不知道真正的问题是什么。难道我做错了什么?通过 Intent 发送和接收字符串的正确方法是什么?如果还有其他办法,请帮帮我。 我的两个类都扩展了 Activity 并实现了 OnClickListener

最佳答案

这样做

您应该尝试在onClick事件中获取元素

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

关于android - 将字符串从 edittext 传递到新 Intent 会出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16421520/

相关文章:

android - 将 Android 项目构建到不同的包

android - Web 服务的最佳 RESTful 方法

regex - 根据特殊字符分割字符串

java - 如何删除字符串中除 "1"和 "2"之外的所有数字?

string - C 字符串 FFI:是否有类似 String::from_raw_buf_with_max_len 的东西

android - 在 Android 中按 MIME 类型获取联系人

安卓工作室 : table layouts conten reformats when text is cahnged

java - 无法编辑或更新 Room 数据库条目

Android:通过 body Intent 发送短信并返回。

android - 在 AndroidManifest 中注册 Intent.ACTION_DREAMING_STARTED