Android Studio中使用数字类型EditText传递十进制值,Toast不显示怎么办?
问题分析与解决方案
问题原因
- 你在
onCreate方法初始化阶段就获取了edtNumber的文本内容,此时用户还未在输入框中输入任何数值,weight变量会是空字符串。 - 点击按钮时,你调用的是初始化时的空
weight值,而非用户点击时输入的最新内容,导致Toast无法显示输入的数值。
修复后的代码
public class MainActivity extends AppCompatActivity { private TextView txtDate; private Button addBtn; private EditText edtNumber; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); txtDate = findViewById(R.id.txtDate); addBtn = findViewById(R.id.addBtn); edtNumber = findViewById(R.id.edtNumber); SimpleDateFormat sdf = new SimpleDateFormat("'Date\n'dd-MM-yyyy HH:mm:ss"); String currentDateAndTime = sdf.format(new Date()); txtDate.setText(currentDateAndTime); addBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // 每次点击按钮时获取输入框的最新内容 String weight = edtNumber.getText().toString(); // 可选:处理空输入的情况 if (weight.isEmpty()) { Toast.makeText(MainActivity.this, "请输入体重数值", Toast.LENGTH_SHORT).show(); return; } Toast.makeText(MainActivity.this, "Weight:"+ weight + "\n" + currentDateAndTime, Toast.LENGTH_SHORT).show(); } }); } }
补充说明
- 将获取输入框文本的逻辑移至按钮点击事件内,确保每次点击都能拿到用户实时输入的内容。
- 新增空输入判断,避免Toast显示无意义的空值,提升交互体验。
内容的提问来源于stack exchange,提问作者netti169
相关产品推荐
相关产品推荐

