Java 在recyclerview android中按位置获取textview值
我有一份多项目的清单。在我的列表中,每个项目都包含一个状态,可以是1或2。我还有两个按钮,一个是确认,一个是完成。现在,如果状态为2,我想隐藏complete按钮,如果状态为1,我想隐藏confirm按钮。但它只检查第一项的状态。请帮忙Java 在recyclerview android中按位置获取textview值,java,android,android-recyclerview,Java,Android,Android Recyclerview,我有一份多项目的清单。在我的列表中,每个项目都包含一个状态,可以是1或2。我还有两个按钮,一个是确认,一个是完成。现在,如果状态为2,我想隐藏complete按钮,如果状态为1,我想隐藏confirm按钮。但它只检查第一项的状态。请帮忙 @Override public void onBindViewHolder(@NonNull Fmb2borderadapter.orderfmholder holder, int position) { Fmordermodel fmorde
@Override
public void onBindViewHolder(@NonNull Fmb2borderadapter.orderfmholder holder, int position) {
Fmordermodel fmordermodel = fmsarr.get(position);
holder.assignOrderNbr.setText(fmordermodel.getAssignOrderno());
holder.assignCustomerID.setText(fmordermodel.getOrder_unique_id());
holder.assignOrderDate.setText(fmordermodel.getAssignOrderDate());
holder.tv_status.setText(fmordermodel.getStatus());
status = fmordermodel.getStatus();
holder.tv_status.setTag(position);
status = fmordermodel.getStatus();
// holder.tv_status.setVisibility(holder.tv_status.getTag(position)=="2"?View.VISIBLE:View.GONE);
if (holder.tv_status.toString() == "2" ){
holder.tv_complete.setVisibility(View.VISIBLE);
holder.tv_confrim.setVisibility(View.GONE);
}else{
holder.tv_complete.setVisibility(View.GONE);
holder.tv_confrim.setVisibility(View.VISIBLE);
}
}
试着换掉这条线
if (holder.tv_status.toString() == "2" ){
if (holder.tv_status.toString().equals("2" ){
用这条线
if (holder.tv_status.toString() == "2" ){
if (holder.tv_status.toString().equals("2" ){
您需要按如下方式更改
if块
:
if (holder.tv_status.getText().toString().equals("2")) {
//...
}
您已经删除了
getText()
方法。顺便说一下,除非您想检查引用,否则不要使用==
运算符来比较字符串
值。使用equals()
来有效地比较两个String
值。缺少一个“)”,很抱歉,我无法编辑iti,但我的问题是它不会检查所有项目的状态。现在它只检查第一个项目的状态,第一个项目的状态为2,因此它对所有项目隐藏完成按钮,但我只想在状态为2的地方隐藏