Android 使用改装2填充ListView

Android 使用改装2填充ListView,android,retrofit2,Android,Retrofit2,我试图用服务器上的JSON填充ListView。我正在从服务器获取数据,但我似乎不知道如何将其放在ListView中。我得到的错误在onResponse中 它说:“错误:(84,54)错误:类jucatoriliberiaryadapter中的构造函数jucatoriliberiaryadapter不能应用于给定的类型; 必需:上下文,ArrayList 找到:碎片活动,呼叫> 原因:无法通过方法调用转换将实际参数调用>转换为ArrayList“ 我想我已经尝试了几乎所有的Alt+Enter修复

我试图用服务器上的JSON填充ListView。我正在从服务器获取数据,但我似乎不知道如何将其放在ListView中。我得到的错误在onResponse中

它说:“错误:(84,54)错误:类jucatoriliberiaryadapter中的构造函数jucatoriliberiaryadapter不能应用于给定的类型; 必需:上下文,ArrayList 找到:碎片活动,呼叫> 原因:无法通过方法调用转换将实际参数调用>转换为ArrayList“

我想我已经尝试了几乎所有的Alt+Enter修复。还尝试将
onResponse()中的
Call类型更改为
onResponse()
如果适配器需要
列表
,则response参数是您要给适配器的玩家列表

请尝试以下代码:

final Call<List<FreePlayers>> request = REST_CLIENT.getFreePlayers(1);

request.enqueue(new Callback<List<FreePlayers>>() {

    @Override
    public void onResponse(final Call<List<FreePlayers>> call, final Response<List<FreePlayers>> response) {

        ArrayList<FreePlayers> players = null;

        players = response.body();

        ListView lv = (ListView) getView().findViewById(android.R.id.list);

        JucatoriLiberiArrayAdapter adapter = new JucatoriLiberiArrayAdapter(getActivity(),
                        players);

        lv.setAdapter(adapter);


    }

    @Override
    public void onFailure(final Call<FreePlayers> call, final Throwable t) {

    }
});
final Call request=REST\u CLIENT.getFreePlayers(1);
request.enqueue(新回调(){
@凌驾
公共void onResponse(最终呼叫,最终响应){
ArrayList players=null;
players=response.body();
ListView lv=(ListView)getView().findViewById(android.R.id.list);
jucatoriliberiarayadapter=新的jucatoriliberiarayadapter(getActivity(),
球员);
低压设置适配器(适配器);
}
@凌驾
失败时公共无效(最终呼叫、最终可丢弃t){
}
});

呼叫与玩家关联,但玩家类型为
ArrayList
,呼叫类型为您要声明的
call

Call<FreePlayers>, 
public class JucatoriLiberiArrayAdapter extends BaseAdapter {

    private Context context;
    private ArrayList<FreePlayers> players;




    public JucatoriLiberiArrayAdapter(Context context, ArrayList<FreePlayers> playersList) {
        super();

        this.context = context;
        this.players = playersList;
    }

    @Override
    public int getCount() {
        return 0;
    }

    @Override
    public Object getItem(final int position) {
        return null;
    }

    @Override
    public long getItemId(final int position) {
        return 0;
    }

    @Override
    public View getView(final int position, View convertView, final ViewGroup parent) {



        LayoutInflater inflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        if (convertView == null) {

            convertView = inflater.inflate(R.layout.list_view_jucatori_liberi, null);


            TextView playerName = (TextView) convertView.findViewById(R.id.name);
            playerName.setText((CharSequence) players.get(position));


        }


        return convertView;

    }


}
final Call<List<FreePlayers>> request = REST_CLIENT.getFreePlayers(1);

request.enqueue(new Callback<List<FreePlayers>>() {

    @Override
    public void onResponse(final Call<List<FreePlayers>> call, final Response<List<FreePlayers>> response) {

        ArrayList<FreePlayers> players = null;

        players = response.body();

        ListView lv = (ListView) getView().findViewById(android.R.id.list);

        JucatoriLiberiArrayAdapter adapter = new JucatoriLiberiArrayAdapter(getActivity(),
                        players);

        lv.setAdapter(adapter);


    }

    @Override
    public void onFailure(final Call<FreePlayers> call, final Throwable t) {

    }
});
Call<FreePlayers>, 
Call<ArrayList<FreePlayers>>.
@Override
public int getCount() {
    if (players == null) return 0;
    return players.size();
}

@Override
public Object getItem(final int position) {
    if (players == null || players.size() == 0) return null; 
    return players.get(position);
}

@Override
public long getItemId(final int position) {
    return getItem(position).getId(); // or something like an id that suits you.
}