如何从web android获取图像 [英] How to get an image from the web android

查看:50
本文介绍了如何从web android获取图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用RSS提要处理新闻android项目,我的应用程序现在可以获取标题,描述,新闻时间,但我无法获得图片它向我显示错误:我不知道我犯了什么罪!请求帮助>>>这是任何地方的错误:

I'm working on news android project using RSS feed, my app now can get title,description,time of news perfictly but Ican't get the Image it show me that error: I do not know where I sinned ! Ineed help please >>> this is the error anywhere :

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):


this is my code (my 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):


}

this is (my 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();
}



这是继续上述错误的行(holder.gimage.setImageURI(Uri.parse(article.getImage()));)这是(我的RSSParser.java):


this the line that contints the above error (holder.gimage.setImageURI(Uri.parse(article.getImage())) ;) this is (my 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;
})





我尝试过:



我在代码中尝试了一些代码!



What I have tried:

I have tried some code it is inside the code !

推荐答案

StringUri。< init>(Uri.java:464)
在android.net.Uri
StringUri.<init>(Uri.java:464) at android.net.Uri


StringUri。< init>(Uri.java:454)
在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)
在android.support.v7.widget.RecyclerView
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.onB indViewHolder(RecyclerView.java:5453)
在android.support.v7.widget.RecyclerView
Adapter.onBindViewHolder(RecyclerView.java:5453) at android.support.v7.widget.RecyclerView


这篇关于如何从web android获取图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆