我尝试在onBindViewHolder中设置文本,我确定我没有错误地创建它,因为如果设置了伪数据setText,它会将setText设置为回收者视图。
但是,如果我创建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;必须被捕获或声明为抛出”。
答案 0 :(得分:0)
如果要设置setText,则必须从UI线程访问该函数,然后才能调用runOnUiThread函数。
Activity.runOnUiThread(() =>{ call setText here })
我现在正在使用移动电话,这就是为什么我的回答很简短的原因。
编辑: 还要检查您要设置为文本的所有数据是否都是实际字符串。