ListView无setAdapter方法问题:Retrofit取数后无法绑定适配器
问题解决:无法为ListView设置Adapter
你的代码存在两个核心问题导致无法调用setAdapter方法:
1. 变量类型声明错误
你将ListView对象错误声明为泛型List类型,而List接口并没有setAdapter方法。需要将变量类型改为ListView:
修改这一行:
List list=view.findViewById(R.id.listview);
改为:
ListView list=view.findViewById(R.id.listview);
同时确保代码顶部导入了android.widget.ListView包。
2. 方法名拼写错误
Android方法采用驼峰命名法,setAdapter的首字母A需要大写,你写的setadapter是错误的:
修改注释掉的代码行:
// list.setadapter(adapter);
改为:
list.setAdapter(adapter);
额外优化建议
你当前使用的androidx.appcompat.R.layout.support_simple_spinner_dropdown_item是下拉列表专用布局,更适合ListView的标准布局可以用android.R.layout.simple_list_item_1,显示效果更符合列表场景:
ArrayAdapter<String> adapter=new ArrayAdapter<>(getContext(), android.R.layout.simple_list_item_1, name);
同时建议增加响应体空判断,避免空指针异常:
if(modelsList == null) return;
修改后的完整关键代码片段:
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view=inflater.inflate(R.layout.fragment_get_data,container,false); // 修正变量类型为ListView ListView list=view.findViewById(R.id.listview); Button btn_get_data=view.findViewById(R.id.btn_get_data); btn_get_data.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { getdata(); } private void getdata() { Call<List<models>> call=ApiClient.getInstance().getApi().getdata(); call.enqueue(new Callback<List<models>>() { @Override public void onResponse(Call<List<models>> call, Response<List<models>> response) { List<models> modelsList=response.body(); if(modelsList == null) return; // 增加空判断避免崩溃 String[] name=new String[modelsList.size()]; for (int i=0;i<modelsList.size();i++){ name[i]=modelsList.get(i).getName(); } ArrayAdapter<String> adapter=new ArrayAdapter<>(getContext(), android.R.layout.simple_list_item_1, name); // 修正方法名拼写 list.setAdapter(adapter); } @Override public void onFailure(Call<List<models>> call, Throwable t) { Toast.makeText(getContext(), t.getMessage(), Toast.LENGTH_SHORT).show(); Log.e("error", t.getMessage() ); } }); } }); return view; }
内容的提问来源于stack exchange,提问作者amir mohammad
相关产品推荐
相关产品推荐

