Добавление изображения в ListView в RSS-канал - PullRequest
0 голосов
/ 25 сентября 2018

Это мой текущий RSS-канал для моего приложения.Я хотел бы, чтобы отображались изображения из RSS-канала.В настоящее время изображение находится внутри тега описания в коде RSS.Я хотел бы иметь возможность извлечь эти изображения из RSS и иметь его в своем приложении.

public class MainActivity extends AppCompatActivity {
private Button button;
ListView lvRSS;
ArrayList<String> titles;
ArrayList<String> links;
ArrayList<String> img;

@Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
    this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);

    button = findViewById(R.id.navBar);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            openMenu();
        }
    });

    lvRSS = findViewById(R.id.lvRSS);
    titles = new ArrayList<>();
    links = new ArrayList<>();
    img = new ArrayList<>();

    lvRSS.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Uri uri = Uri.parse(links.get(position));
            Intent intent = new Intent(Intent.ACTION_VIEW, uri);
            startActivity(intent);
        }
    });

    new ProcessInBackground().execute();
}
public void openMenu() {
    Intent intentMenu = new Intent(this, menuActivity.class);
    startActivity(intentMenu);
}
public InputStream getInputStream(URL url)
{
    try
    {
        return url.openConnection().getInputStream();
    }
    catch (IOException e)
    {
        return null;
    }
}
public class ProcessInBackground extends AsyncTask<Integer, Void, Exception>
{
    ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
    Exception exception = null;

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

        progressDialog.setMessage("Loading");
        progressDialog.show();
    }
    @Override
    protected Exception doInBackground(Integer... params) {
        try
        {
            URL url = new URL("http://www.scotscollege.school.nz/category/sports-news/feed/");
            XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
            factory.setNamespaceAware(false);
            XmlPullParser xmlPullParser = factory.newPullParser();
            xmlPullParser.setInput(getInputStream(url), "UTF_8");
            boolean insideItem = false;
            int eventType =  xmlPullParser.getEventType();
            while (eventType != xmlPullParser.END_DOCUMENT)
            {
                if (eventType == XmlPullParser.START_TAG)
                {
                    if (xmlPullParser.getName().equalsIgnoreCase("item"))
                    {
                        insideItem = true;
                    }
                    else if (xmlPullParser.getName().equalsIgnoreCase("title"))
                    {
                        if (insideItem)
                        {
                            titles.add(xmlPullParser.nextText());
                        }
                    }
                    else if (xmlPullParser.getName().equalsIgnoreCase("guid"))
                    {
                        if (insideItem)
                        {
                            links.add(xmlPullParser.nextText());
                        }
                    }
                    else if (xmlPullParser.getName().equalsIgnoreCase("img"))
                    {
                        if (insideItem)
                        {
                            img.add(xmlPullParser.nextText());
                        }
                    }
                }
                else if (eventType == XmlPullParser.END_TAG && xmlPullParser.getName().equalsIgnoreCase("item"))
                {
                    insideItem = false;
                }
                eventType = xmlPullParser.next();
            }
        }
        catch (MalformedURLException e)
        {
            exception = e;
        }
        catch (XmlPullParserException e)
        {
            exception = e;
        }
        catch (IOException e)
        {
            exception = e;
        }


        return exception;
    }
    @Override
    protected void onPostExecute(Exception s) {
        super.onPostExecute(s);

        ArrayAdapter<String> adapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, titles);
        lvRSS.setAdapter(adapter);

        progressDialog.dismiss();
    }
}
}

Любая помощь будет оценена.Ссылка на канал RSS: http://www.scotscollege.school.nz/category/sports-news/feed/ Если вы хотите увидеть RSS-код.

Спасибо за любую возможную помощь.

...