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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 03:50:39