我正在处理片段,我想在onCreateView()
方法中创建一个列表视图。但是我在ArrayList<>
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
View v= inflater.inflate(R.layout.view , container , false);
lv1=(ListView)v.findViewById(R.id.list);
ConnectDatabase db=new ConnectDatabase(getActivity());
ArrayList<String> theList=new ArrayList<>();
Cursor data=db.retrievee();
if(data.getCount() == 0)
{
}
else
{
while (data.moveToNext())
{
theList.add(data.getString(0));
/*line of Error*/
ListAdapter listAdapter=new ArrayList<>(this,android.R.layout.simple_list_item_1,theList);
lv1.setAdapter(listAdapter);
}
}
lv1.setOnItemClickListener(this);
return v;
}
答案 0 :(得分:1)
替换
ListAdapter listAdapter=new ArrayList<>(this,android.R.layout.simple_list_item_1,theList);
使用
ListAdapter listAdapter =new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,theList);
答案 1 :(得分:0)
您正在尝试将对象强制转换为与其不具有共同基础的类。 ListAdapter
用于将数据排列并呈现给ListView
,而ArrayList
只是其他对象和基元的有序集合。有点像试图将香蕉扔到电话上,只是因为它们看起来很相似并不意味着它将起作用。
您需要声明一个实现ListAdapter
接口的类。一个现成的选项是ArrayAdapter
,因为您已经在使用ArrayList<String>
作为列表数据。
ListAdapter listAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, theList);
lv1.setAdapter(listAdapter);