我在Fragment中做了一个listView,效果不错。现在我想做一个自定义的listView,但我得到的是not found.用simple_list_item_1可以,用list item就不行。
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
ListView mListView = (ListView)getActivity().findViewById(R.id.list);
//mArrayAdapter = new ArrayAdapter<String>(getContext(), android.R.layout.simple_list_item_1, android.R.id.text1, songs);
mArrayAdapter = new ArrayAdapter<String>(getContext(), android.R.layout.list_item, android.R.id.text1, songs);
mListView.setAdapter(mArrayAdapter);
}
錯誤
error: cannot find symbol
mArrayAdapter = new ArrayAdapter<String>(getContext(), android.R.layout.list_item, android.R.id.text1, songs);
^
符号:变量list_item
如果没有崩溃,并且你的列表视图没有创建,可以试试这个。
覆盖 onViewCreated()
并宣布 listview
在其中使用 view
而不是像这样用getActivity()代替
ListView mListView = (ListView)view.findViewById(R.id.list);
和
mArrayAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.list_item, android.R.id.text1, songs);
复制并粘贴代码
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ListView mListView = (ListView)view.findViewById(R.id.list);
//mArrayAdapter = new ArrayAdapter<String>(getContext(), android.R.layout.simple_list_item_1, android.R.id.text1, songs);
mArrayAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.list_item, android.R.id.text1, songs);
mListView.setAdapter(mArrayAdapter);
}
答案
@SuppressLint("ResourceType")
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ListView mListView = (ListView)view.findViewById(R.id.list);
mArrayAdapter = new ArrayAdapter<String>(getActivity(), R.layout.list_item , R.id.text2, songs);
mListView.setAdapter(mArrayAdapter);
}