You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中inputType为numberPassword的EditText调用setText失效问题

解决android:inputType="numberPassword"类型EditText自动填充密码问题

你遇到的致命错误核心原因是误用了setText的重载方法,以下是正确的实现方案及问题分析:

正确实现步骤

  1. 确保EditText已完成初始化(比如在Activity的onCreate方法中,布局加载完成后通过findViewById获取实例)
  2. 直接使用setText(String)方法传入密码字符串即可,无需额外转换,示例代码:
EditText passwordEditText = findViewById(R.id.txt_password);
// 读取到的密码字符串,比如从文件中获取的"1234"
String savedPassword = "1234";
// 直接设置字符串密码
passwordEditText.setText(savedPassword);
  1. 如果存在显示异常(比如密码未被掩码隐藏),可补充设置转换方法:
passwordEditText.setTransformationMethod(PasswordTransformationMethod.getInstance());

你尝试方法的问题分析

  • passwordEditText.setText(Integer.parseInt(password)):setText(int)方法接收的是字符串资源ID,不是数字值,传入转换后的整数会因找不到对应资源ID而崩溃,这是导致致命错误的直接原因
  • 单独设置setInputType或setTransformationMethod无法解决崩溃问题,因为崩溃根源是setText方法的误用

额外注意事项

  • 读取文件中的密码时,必须先做非空判断,避免传入null引发空指针异常
  • 若在Fragment中操作,需在onViewCreated生命周期方法之后获取EditText实例

内容的提问来源于stack exchange,提问作者blackmamba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 10:32:34