putExtra无法读取TextInputEditText内容的问题求助
问题原因与解决方案
问题根源
你在onCreate方法启动时就直接获取了TextInputEditText的内容并赋值给dados,此时Activity刚初始化完成,用户还没在输入框中输入任何内容,所以dados从一开始就是空字符串。当点击按钮时,你传递的是这个提前初始化好的空值,而非用户输入后的实时内容。换成固定字符串"teste"能正常工作,是因为这个值是静态固定的,不会随用户操作变化。
修复代码
将读取输入框内容的逻辑移到按钮的onClick事件内部,这样每次点击按钮时才会读取输入框的实时内容:
public class MainActivity2 extends AppCompatActivity { Button button5; TextInputEditText textoinput; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.addpriority); textoinput = findViewById(R.id.texto); button5 = findViewById(R.id.button5); button5.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { // 点击按钮时读取输入框的实时内容 String dados = textoinput.getText().toString(); Intent intent = new Intent(getApplicationContext(), MainActivityMenu.class); intent.putExtra("chave", dados); startActivity(intent); } }); } }
内容的提问来源于stack exchange,提问作者Ricardo Diz
相关产品推荐
相关产品推荐

