错误毕加索不适用于RecyclerView

时间:2019-10-07 12:25:00

标签: java android

即使我在onCreate中尝试了一张图像,也没有从URL显示图像,它实际上可以与相同的URL一起使用,但是在RecyclerView中什么也没显示

我的创建方法

    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);



        NetworkUtilites ob=new NetworkUtilites();
        ob.execute();


        /** moviesArray contains Movies with Description **/

        moviesArray=ob.getArrayMovies();

        adapter = new RecyclerViewAdapter( this,  moviesArray);

        mRecyclerView = findViewById(R.id.recycler_view);
        mRecyclerView.setAdapter(adapter);
        mRecyclerView.setHasFixedSize(true);
        mRecyclerView.setLayoutManager(new LinearLayoutManager(this));


    }

这是onBindViewHolder函数

  public void onBindViewHolder(@NonNull ViewHolder holder, final int position) {

        /** MoviesArray return description of movie , getPoster_path() path return URL Of the poster film**/

        String moviePosterURL= moviesArray.get(position).getPoster_path();

        if(!TextUtils.isEmpty(moviePosterURL))
        {
            Picasso.get().load(moviePosterURL).into(holder.imageView);
        }

    }

这是onCreateViewHolder函数

    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.layoul_listitem,parent,false);
        ViewHolder holder = new ViewHolder(view);


        return holder;
    }

这是ViewHolder函数


    public class ViewHolder extends RecyclerView.ViewHolder
    {

        ImageView imageView;
        RelativeLayout parentlayout;

        public ViewHolder(@NonNull View itemView)
        {
            super(itemView);
            imageView=itemView.findViewById(R.id.image);
            parentlayout =itemView.findViewById(R.id.parent_layout);
        }
    }

layout_listitem.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/parent_layout"
    >

    <ImageView
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:id="@+id/image"
    />

</RelativeLayout>

activity_main.xml与“回收者视图”

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />

</RelativeLayout>

NetworkUtilites类

public class NetworkUtilites extends AsyncTask<Void,Void,Void>
{

        private static final String MoviesURL="http://api.themoviedb.org/3/movie/popular?api_key=";
        private ArrayList <ListItem> arrayMovies =new ArrayList<>();
        private String sent=null;

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }


        @Override
        protected Void doInBackground(Void... strings)
        {

            try
            {

                URL url = new URL(MoviesURL);
                HttpURLConnection urlConnection=(HttpURLConnection)url.openConnection();
                InputStream in = new BufferedInputStream(urlConnection.getInputStream());
                sent=StreamtoString(in);
                in.close();


            }
            catch (Exception e)
            {

            }
            return null;
        }


        @Override
        protected void onPostExecute(Void s)
        {

            super.onPostExecute(s);
        }


        public String StreamtoString(InputStream inputStream)
        {
            BufferedReader bureader= new BufferedReader(new InputStreamReader(inputStream));
            String line;
            String Text = "";
            try{
                while((line=bureader.readLine())!=null)
                {
                    Text+=line;
                }
            } catch (Exception e) {

            }
            return  Text;
        }


        public String getSent() {
            return sent;
        }

        public ArrayList<ListItem> getArrayMovies()
        {

            try {

                JSONObject parentObject;
                JSONArray parentArray;
                if (!sent.equals(null))
                {
                    parentObject = new JSONObject(sent);
                    parentArray = parentObject.getJSONArray("results");

                    System.out.println(parentArray.length());
                    for (int i = 0; i < parentArray.length(); i++)
                    {

                        JSONObject movieDetails = parentArray.getJSONObject(i);
                        String poster_path="http://image.tmdb.org/t/p/w342";
                        poster_path += movieDetails.getString("poster_path");
                        String original_title=movieDetails.getString("original_title");
                        String overview= movieDetails.getString("overview");
                        int vote_average=movieDetails.getInt("vote_average");
                        String release_date=movieDetails.getString("release_date");

                        ListItem ob= new ListItem(original_title,poster_path,overview,vote_average,release_date);
                        arrayMovies.add(ob);
                    }

                }
            }
            catch (Exception e)
            {

            }

            return arrayMovies;
        }






}

0 个答案:

没有答案