Java 显示不同类别活动的不同列表项

Java 显示不同类别活动的不同列表项,java,android,arraylist,android-arrayadapter,custom-arrayadapter,Java,Android,Arraylist,Android Arrayadapter,Custom Arrayadapter,现在我想列出不同类别的项目,例如:其中一个是医院,一个项目必须包含姓名、地址和电话号码,我在适配器中创建了这个if语句,如果的索引中有一个文本不可见,则其他文本不可见,但对我没有任何帮助 公共类DataAdapter扩展了ArrayAdapter{ 私有int mColorResourceId; 公共DataAdapter(@NonNull上下文,ArrayList资源,int-ColorResourceId){ 超级(上下文,0,资源); mColorResourceId=ColorResou

现在我想列出不同类别的项目,例如:其中一个是医院,一个项目必须包含姓名、地址和电话号码,我在适配器中创建了这个if语句,如果的索引中有一个文本不可见,则其他文本不可见,但对我没有任何帮助

公共类DataAdapter扩展了ArrayAdapter{
私有int mColorResourceId;
公共DataAdapter(@NonNull上下文,ArrayList资源,int-ColorResourceId){
超级(上下文,0,资源);
mColorResourceId=ColorResourceId;
}
@非空
@凌驾
公共视图getView(int位置,@Nullable视图convertView,@NonNull视图组父级){
查看列表项=转换视图;
如果(listitem==null){
listitem=LayoutInflater.from(getContext()).flate(R.layout.list\u项,父项,false);
}
数据currentword=(数据)getItem(位置);
TextView pd=(TextView)listitem.findViewById(R.id.placetxt);
pd.setText(currentword.getPlaceWord());
TextView ad=(TextView)listitem.findViewById(R.id.adddrestxt);
ad.setText(currentword.getAddressWord());
if(currentword.oneText()){
TextView ps=(TextView)listitem.findViewById(R.id.placetxt);
ps.setText(currentword.getReason());
}否则{
pd.setVisibility(视图已消失);
ad.setVisibility(View.GONE);
}
查看textContainer=listitem.findViewById(R.id.list\u项);
//查找资源ID映射到的颜色
int color=ContextCompat.getColor(getContext(),mColorResourceId);
//设置文本容器视图的背景色
textContainer.setBackgroundColor(颜色);
返回列表项;
}
}

使用回收器视图,并在其适配器中添加此逻辑。

请将代码作为片段或粘贴箱链接提供,但不能作为图片提供(两次)。这里是堆栈溢出。你能更详细地描述一下“它对我不起作用”吗?发生了什么?你期望什么?当我运行时,一些文本没有出现,它必须出现。例如:医院类别中的一个列表项“医院名称、地址和电话号码”另一个类别示例顶级景点类别其列表项中的一个必须有“一条文字”我预期会有这样的情况,但没有发生,活动运行良好,我使用的构造函数有2个参数,其他没有@Milgoi我还在学习自定义适配器、arraylist和自定义类,并在上面练习我在变量逻辑中的错误原因及其方法,对吗?
public class Data {
private String placeWord;
private String addressWord;
private String reason = ONE_TEXT;
private static final String ONE_TEXT = "ah";


public Data(String mPlaceWord , String mAddressWord){
    placeWord = mPlaceWord;
    addressWord = mAddressWord;
}
public Data(String theReson){
   reason = theReson;
}
public String getPlaceWord(){
    return placeWord;
}
public String getAddressWord(){
    return addressWord;
}
public String getReason(){return reason;}

public boolean oneText(){
    return  reason != ONE_TEXT;
}