首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能将List<Trail>转换为上下文

不能将List<Trail>转换为上下文
EN

Stack Overflow用户
提问于 2018-03-22 16:47:02
回答 1查看 75关注 0票数 1

嗨,我有下面的代码,它用我使用Retrofit客户端接收的数据填充一个listview。

代码语言:javascript
复制
listView = (ListView) findViewById(R.id.list_item_details);


    if (mlabAPi.isEmpty()) {
        Toast.makeText(getApplicationContext(), "Please obtain your API KEY from!", Toast.LENGTH_LONG).show();
        return;
    }


    ApiInterface apiService =
            MlabApiClient.getClient().create(ApiInterface.class);

    Call<List<Trail>> call = apiService.byTrailID(countyString,mlabAPi);
    call.enqueue(new Callback<List<Trail>>() {
        @Override
        public void onResponse(Call<List<Trail>> call, Response<List<Trail>> response) {
            int statusCode = response.code();
            List<Trail> trails = response.body();
            listView.setAdapter(new WalkDetailsAdapter(trails,R.layout.list_item_details, )); **<-HERE**
        }

        @Override
        public void onFailure(Call<List<Trail>> call, Throwable t) {
            // Log error here since request failed
            Log.e(TAG, t.toString());

        }
    });

这给了我errorError:(127,60)错误:不兼容类型:列表不能转换为上下文。

我认为这个错误是listView.setAdapter的第三个参数,有人知道我必须添加的第三个参数是什么吗?(我尝试了getApplicatinonContext,因为我在填充回收视图时就是这么做的)。什么是列表视图的等价物?

谢谢。

随身听适配器

代码语言:javascript
复制
   public class WalkDetailsAdapter extends ArrayAdapter<Trail> {

    private Context context;
    private List<Trail> values;

    public WalkDetailsAdapter ( Context context, List<Trail> values){
        super(context, R.layout.list_item_details, values);

        this.context = context;
        this.values = values;

    }

    @Override
    public View getView (int position, View convertView, ViewGroup parent)
    {
        View row = convertView;

        if (row == null)
        {
            LayoutInflater inflater =
                    (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            row = inflater.inflate(R.layout.list_item_details, parent, false);

        }


        TextView textViewName = (TextView) row.findViewById(R.id.name);
        TextView textViewCounty = (TextView) row.findViewById(R.id.county);
        TextView textViewFormat = (TextView) row.findViewById(R.id.format);
        TextView textViewTime = (TextView) row.findViewById(R.id.time);
        TextView textViewLength = (TextView) row.findViewById(R.id.length);
        //TextView textViewGrade = (TextView) row.findViewById(R.id.grade);
        TextView textViewDifficultly = (TextView) row.findViewById(R.id.diffuctlty);
        TextView textViewQuality= (TextView) row.findViewById(R.id.quality);
        TextView textViewStart = (TextView) row.findViewById(R.id.start);
        TextView textViewFinish = (TextView) row.findViewById(R.id.finish);

        Trail item = values.get(position);
        String trail = item.getTrailName();
        textViewName.setText(trail);

        String county = item.getCounty();
        textViewCounty.setText(county);

        String format = item.getFormat();
        textViewFormat.setText(format);

        String time = item.getTime();
        textViewTime.setText(time);

        String length = item.getDistance();
        textViewLength.setText(length);

        String diff = item.getGrade();
        textViewDifficultly.setText(diff);

        String quality = item.getQuality();
        textViewQuality.setText(quality);

        String start = item.getStartTown();
        textViewStart.setText(start);

        String finish = item.getFinishTown();
        textViewFinish.setText(finish);

        return row;



    }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-22 17:13:41

把这个换一下

listView.setAdapter(new WalkDetailsAdapter(trails,R.layout.list_item_details, ));

到这个

listView.setAdapter(new WalkDetailsAdapter(getApplicationContext(),trails));

问题是,在您的WalkDetailsAdapter类中,构造函数参数是一个Context和一个List<Trail>,您提供的是列表,然后是布局资源。因此,只需切换参数,使第一个参数是上下文,根据类是什么使用getApplicationContext()getContext()this,第二个参数切换到List<Trail>实例,然后使用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49434165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档