Android 片段内的列表视图不会显示内容

Android 片段内的列表视图不会显示内容,android,listview,Android,Listview,我试图在片段中实现一个列表视图。我正在使用阵列适配器来完成这项工作。列表视图没有显示我在数组中添加的数据。它也没有显示任何错误 片段代码 public class SymptomsFragment extends Fragment { ArrayList<String> symptomsList = new ArrayList<>(); ListView listView; ArrayAdapter<String> arrayAdapter; @Nulla

我试图在片段中实现一个列表视图。我正在使用阵列适配器来完成这项工作。列表视图没有显示我在数组中添加的数据。它也没有显示任何错误

片段代码

public class SymptomsFragment extends Fragment {

ArrayList<String> symptomsList = new ArrayList<>();
ListView listView;
ArrayAdapter<String> arrayAdapter;

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {


    View v =  inflater.inflate(R.layout.fragment_symptoms,container,false);
    listView = v.findViewById(R.id.symptomListView);
    symptomsList.add("Aches and pains");
    symptomsList.add("Sore throat");
    symptomsList.add("Diarrhoea");
    symptomsList.add("Conjunctivitis");
    symptomsList.add("Headache");
    symptomsList.add("Loss of taste or smell");
    symptomsList.add("Rashes on skin");
    arrayAdapter = new ArrayAdapter<>(getActivity(),android.R.layout.simple_list_item_1,symptomsList);


    listView.setAdapter(arrayAdapter);

    return inflater.inflate(R.layout.fragment_symptoms,container,false);
}
}
公共类症状片段扩展片段{
ArrayList症状列表=新建ArrayList();
列表视图列表视图;
ArrayAdapter ArrayAdapter;
@可空
@凌驾
创建视图时的公共视图(@NonNull LayoutInflater inflater、@Nullable ViewGroup container、@Nullable Bundle savedInstanceState){
视图v=充气机。充气(右布局。碎片症状,容器,错误);
listView=v.findViewById(R.id.listView);
症状列表。添加(“疼痛”);
症状列表。添加(“喉咙痛”);
症状列表添加(“腹泻”);
症状列表添加(“结膜炎”);
症状列表。添加(“头痛”);
症状列表。添加(“味觉或嗅觉丧失”);
症状列表。添加(“皮肤上的皮疹”);
arrayAdapter=newArrayAdapter(getActivity(),android.R.layout.simple\u list\u item\u 1,症状列表);
setAdapter(arrayAdapter);
返回充气机。充气(右布局。碎片_症状,容器,错误);
}
}
列表视图XML

<ListView
    android:id="@+id/symptomListView"
    android:layout_width="389dp"
    android:layout_height="367dp"
    android:layout_marginStart="16dp"
    android:layout_marginTop="16dp"
    android:layout_marginEnd="16dp"
    android:background="@color/colorPrimary"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/textView3" />

试试这个

@Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {


        View v =  inflater.inflate(R.layout.fragment_symptoms,container,false);
        listView = v.findViewById(R.id.symptomListView);
        symptomsList.add("Aches and pains");
        symptomsList.add("Sore throat");
        symptomsList.add("Diarrhoea");
        symptomsList.add("Conjunctivitis");
        symptomsList.add("Headache");
        symptomsList.add("Loss of taste or smell");
        symptomsList.add("Rashes on skin");
        arrayAdapter = new ArrayAdapter<>(getActivity(),android.R.layout.simple_list_item_1,symptomsList);


        listView.setAdapter(arrayAdapter);

        return v;
    }
    }
@Nullable
@凌驾
创建视图时的公共视图(@NonNull LayoutInflater inflater、@Nullable ViewGroup container、@Nullable Bundle savedInstanceState){
视图v=充气机。充气(右布局。碎片症状,容器,错误);
listView=v.findViewById(R.id.listView);
症状列表。添加(“疼痛”);
症状列表。添加(“喉咙痛”);
症状列表添加(“腹泻”);
症状列表添加(“结膜炎”);
症状列表。添加(“头痛”);
症状列表。添加(“味觉或嗅觉丧失”);
症状列表。添加(“皮肤上的皮疹”);
arrayAdapter=newArrayAdapter(getActivity(),android.R.layout.simple\u list\u item\u 1,症状列表);
setAdapter(arrayAdapter);
返回v;
}
}
您的问题出在

return inflater.inflate(R.layout.fragment_symptoms,container,false);
您正在膨胀一个布局,查找并配置ListView,然后通过膨胀一个新布局并使用该新布局(无任何配置)作为onCreateView的返回值来丢弃它

只需返回您刚刚充气和配置的视图

return v;

请注意,不要使用ListVIEW,它是在几年前被贬低的,并且存在很多问题,相反,考虑使用RealReVIEW

这是因为你的视图膨胀了两倍。下面的答案应该对你有帮助。但好奇的是,你为什么不使用recyclerview呢?我在安卓工作室还是个新手,所以我只是在尝试不同的小部件并学习它们。我肯定会尝试使用RecyclerView而不是列表视图。RecyclerView是最好的方法,特别是对于刚接触Android的用户,我建议您从最新的技术开始。祝你好运