Как получить изображение из интернета android
Я работаю над новостным проектом android с помощью RSS-канала, мое приложение теперь может получить название,описание,Время новостей идеально, но я не могу получить изображение, которое показывает мне эту ошибку: я не знаю, где я согрешил ! Ineed help please >>> Это ошибка в любом месте :
java.lang.NullPointerException: uriString at android.net.Uri$StringUri.<init>(Uri.java:464) at android.net.Uri$StringUri.<init>(Uri.java:454) at android.net.Uri.parse(Uri.java:426) at com.example.drmzr.myapplication.MyAdapter.onBindViewHolder(MyAdapter.java:36) at com.example.drmzr.myapplication.MyAdapter.onBindViewHolder(MyAdapter.java:12) at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:5453) at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:5486) at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4723)
это мой код (мой Article.java) :
public class Article { String title,description,date,link,image; public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getImage() { return image; } public void setImage(String image) { this.image = image; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getDate() { return date; } public void setDate(String date) { this.date = date; } public String getLink() { return link; } public void setLink(String link) { this.link = link; }
}
это (мой Adapter.java) :
public class MyAdapter extends RecyclerView.Adapter<MyHolder> { Context c; ArrayList<Article> articles; public MyAdapter(Context c, ArrayList<Article> articles) { this.c = c; this.articles = articles; } @Override public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v= LayoutInflater.from(c).inflate(R.layout.model,parent,false); return new MyHolder(v); } @Override public void onBindViewHolder(MyHolder holder, int position) { Article article=articles.get(position); holder.titleTxt.setText(article.getTitle()); holder.descTxt.setText(article.getDescription()); holder.dateTxt.setText(article.getDate()); holder.gimage.setImageURI(Uri.parse(article.getImage())) ; } @Override public int getItemCount() { return articles.size(); }
это линия, которая contints выше сообщение об ошибке (держатель.gimage.setImageURI(URI-адрес.синтаксический анализ(статья.образец getimage())) ;) это (мой RSSParser.java) :
public class RSSParser extends AsyncTask<Void,Void,Boolean> { Context c; InputStream is; RecyclerView rv; ProgressDialog pd; ArrayList<Article> articles=new ArrayList<>(); public RSSParser(Context c, InputStream is, RecyclerView rv) { this.c = c; this.is = is; this.rv = rv; } @Override protected void onPreExecute() { super.onPreExecute(); pd=new ProgressDialog(c); pd.setTitle("Parse data"); pd.setMessage("Parsing data...Please wait"); pd.show(); } @Override protected Boolean doInBackground(Void... params) { return this.parseRSS(); } @Override protected void onPostExecute(Boolean isParsed) { super.onPostExecute(isParsed); pd.dismiss(); if(isParsed) { //Bind rv.setAdapter(new MyAdapter(c,articles)); }else { Toast.makeText(c,"Unable To Parse", Toast.LENGTH_SHORT).show(); } } private Boolean parseRSS() { try { XmlPullParserFactory factory=XmlPullParserFactory.newInstance(); XmlPullParser parser=factory.newPullParser(); parser.setInput(is, null); int event=parser.getEventType(); String value=null; articles.clear(); Article article=new Article(); do { String name=parser.getName(); switch (event) { case XmlPullParser.START_TAG: if(name.equals("item")) { article=new Article(); } break; case XmlPullParser.TEXT: value=parser.getText(); break; case XmlPullParser.END_TAG: if(name.equals("title")) { article.setTitle(value); } else if(name.equals("description")) { article.setDescription(value); }else if(name.equals("pubDate")) { article.setDate(value); }else if(name.equals("date")) { article.setDate(value); }else if(name.equals("image")) { article.setImage(value) ; } if(name.equals("item")) { articles.add(article); } break; } event=parser.next(); }while (event != XmlPullParser.END_DOCUMENT); return true; } catch (XmlPullParserException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return false; })
Что я уже пробовал:
Я пробовал какой - то код, он находится внутри кода !