首页 > 解决方案 > 为什么 setText 会导致我的程序失败,而 Toast 不会?

问题描述

未注释时的setText方法使活动/程序崩溃。但是,当它只是Toast具有相同的变量时,它可以完美地工作。

    int hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
    int min = Calendar.getInstance().get((Calendar.MINUTE));

    int ft = hour + min;

    int second = Calendar.getInstance().get(Calendar.SECOND);
    if(second<10){
        second = second + 10;
    }

    String sft = Integer.toString(ft);
    String ssecond = Integer.toString(second);
    fid = sft + ssecond;


    Toast.makeText(addRoll.this, fid, Toast.LENGTH_LONG).show();
    id.setText(fid);

所以这应该将 更改TextView为创建的 4 位数字。目前,它位于 0000。我知道该变量有效,因为 toast 显示了正确的变量。提前致谢。

标签: javaandroid

解决方案


当我尝试运行您的代码时,它运行良好,我认为您要么将 TextView 保持为 Null,要么您使用的 Textview ID 的名称不同于“id”。也许尝试发布整个活动和更新问题,以便我们可以看到错误在哪里。这是我修改的代码。

TextView textView=(TextView)findViewById(R.id.idTV);
        int hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
        int min = Calendar.getInstance().get((Calendar.MINUTE));

        int ft = hour + min;

        int second = Calendar.getInstance().get(Calendar.SECOND);
        if(second<10){
            second = second + 10;
        }

        String sft = Integer.toString(ft);
        String ssecond = Integer.toString(second);
        String fid = sft + ssecond;


        Toast.makeText(getApplicationContext(), fid, Toast.LENGTH_LONG).show();
        textView.setText(fid);

推荐阅读