返回值尝试捕获?

时间:2019-10-23 08:38:02

标签: java android try-catch

我尝试在onBindViewHolder中设置文本,我确定我没有错误地创建它,因为如果设置了伪数据setText,它会将setText设置为回收者视图。

Trying on try catch but don't do any set text

但是,如果我创建try catch,它不会改变任何内容。 救救我。


try {
            Transaksi transaksi = arrayTransaksi.get(position);
            Calendar calendar = Calendar.getInstance();
            Date date1=new SimpleDateFormat("dd/MM/yyyy").parse(transaksi.getTanggal_transaksi());
            long milis = date1.getTime();
            if (milis == calendar.get(Calendar.DATE)){
                holder.textHariTransaksi.setText("Today");
                holder.textTanggal.setText(transaksi.getTanggal_transaksi());
                holder.textHarga.setText(String.valueOf(transaksi.getHarga_transaksi()));
            }else if(calendar.get(Calendar.DATE) - milis == 1){
                holder.textHariTransaksi.setText("Yesterday");
                holder.textTanggal.setText(transaksi.getTanggal_transaksi());
                holder.textHarga.setText(String.valueOf(transaksi.getHarga_transaksi()));
            }else{
                SimpleDateFormat dateFormat = new SimpleDateFormat("l");
                holder.textHariTransaksi.setText(dateFormat.format(date1));
                holder.textTanggal.setText(transaksi.getTanggal_transaksi());
                holder.textHarga.setText(String.valueOf(transaksi.getHarga_transaksi()));
            }

        } catch (ParseException e) {
            e.printStackTrace();
        }

如果我不使用try catch,则说“错误:未报告的异常ParseException;必须被捕获或声明为抛出”。

1 个答案:

答案 0 :(得分:0)

如果要设置setText,则必须从UI线程访问该函数,然后才能调用runOnUiThread函数。

Activity.runOnUiThread(() =>{ call setText here })

我现在正在使用移动电话,这就是为什么我的回答很简短的原因。

编辑: 还要检查您要设置为文本的所有数据是否都是实际字符串。