首页 > 解决方案 > 使用 recyclerview 在 Fragment 中滑动错误

问题描述

我收到消息错误 错误:无法访问 Fragment Glide.with(this).from(TH).into(thumb); ^ 找不到 android.support.v4.app.Fragment 的类文件

这是我的适配器:

public class HomeAdapter extends RecyclerView.Adapter < HomeAdapter.ViewHolder > {

    Context context;
    List < HomeClass > data;
    TextView Movie,
    desc,
    year,
    rating,
    genre;
    ImageView thumb;
    public HomeAdapter(List < HomeClass > data, Context context) {
        this.context = context;
        this.data = data;
    }
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.home_rv, parent, false);


        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        final HomeClass geter1 = data.get(position);
        String MN, DS, YR, RT, GN, TH;

        MN = geter1.getMoviename();
        DS = geter1.getDesc();
        YR = geter1.getYear();
        RT = geter1.getRating();
        GN = geter1.getGenre();
        TH = geter1.getImage_Movie();

        Movie.setText(MN);
        desc.setText(DS);
        year.setText(YR);
        rating.setText(RT);
        genre.setText(GN);

        Glide.with(this).from(TH).into(thumb);
    }

    @Override
    public int getItemCount() {
        return data.size();
    }

    public class ViewHolder extends RecyclerView.ViewHolder {
        public ViewHolder(View itemView) {
            super(itemView);

            Movie = (TextView) itemView.findViewById(R.id.textMovieName);
            desc = (TextView) itemView.findViewById(R.id.textDescMovie);
            year = (TextView) itemView.findViewById(R.id.textYearMovie);
            rating = (TextView) itemView.findViewById(R.id.textRatingMovie);
            genre = (TextView) itemView.findViewById(R.id.textGenreMovie);
            thumb = (ImageView) itemView.findViewById(R.id.imgMovie);
        }
    }
}

这是家庭片段:

公共类 HomeFragment 扩展片段 {

private RecyclerView recyclerView;
RecyclerView.Adapter adapter;
List<HomeClass> HClass;

String URL_Data="http://192.168.1.25/insoft/vod.php";
RequestQueue reqQue;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View v = inflater.inflate(R.layout.fragment_home, container, false);
    recyclerView=v.findViewById(R.id.rvvod);
    recyclerView.setHasFixedSize(true);
    recyclerView.setLayoutManager(new LinearLayoutManager(v.getContext()));
    HClass=new ArrayList<>();

    loadurl();
    return v;
}


private void loadurl() {
    JsonArrayRequest stringRequest=new JsonArrayRequest(URL_Data, new Response.Listener<JSONArray>() {
        @Override
        public void onResponse(JSONArray response) {

            getvalue(response);

        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

        }
    });

    reqQue = Volley.newRequestQueue(getActivity());

    reqQue.add(stringRequest);
}

private void getvalue(JSONArray array) {
    for (int i = 0; i < array.length(); i++) {
        HomeClass movielist = new HomeClass();
        JSONObject json = null;
        try {
            json = array.getJSONObject(i);
            movielist.setMoviename(json.getString("Name"));
            movielist.setDesc(json.getString("Desc"));
            movielist.setGenre(json.getString("Genre"));
            movielist.setRating(json.getString("Rating"));
            movielist.setYear(json.getString("Year"));
            movielist.setImage_Movie(json.getString("Thumb"));

        } catch (JSONException e) {
            e.printStackTrace();
        }
        HClass.add(movielist);
    }

    adapter = new HomeAdapter(HClass, getActivity());

    recyclerView.setAdapter(adapter);

}

}

我尝试将图像从 json 显示到 recyclerview,但出现错误。

如何解决该错误?

标签: android

解决方案


 @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        final HomeClass geter1 =  data.get(position);
        String MN, DS, YR, RT, GN, TH;

        MN=geter1.getMoviename();
        DS=geter1.getDesc();
        YR=geter1.getYear();
        RT=geter1.getRating();
        GN=geter1.getGenre();
        TH=geter1.getImage_Movie();

        Movie.setText(MN);
        desc.setText(DS);
        year.setText(YR);
        rating.setText(RT);
        genre.setText(GN);
//change your code like this
        Glide.with(context).from(TH).into(thumb);
    }

推荐阅读