Paul S
Paul S

Reputation: 25

Android - Listviews in Fragments

I'm trying to parse a RSS feed and display it to the user via a Listview which is in a Fragment. The problem is that nothing shows up on the list and I get a few errors:

V/Error Parsing Data: java.io.IOException: Couldn't open http://feeds.bbci.co.uk/news/england/rss.xml
W/FragmentManager: moveToState: Fragment state for Thingy{3633e4e #1 id=0x7f0c0069} not updated inline; expected state 3 found 2

My Fragments class:

public class Thingy extends Fragment {
    ListView mList;
    ArrayAdapter<String> adapter;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        View v = inflater.inflate(R.layout.fragment_main, container, false);
        adapter = new ArrayAdapter<>(getActivity(), R.layout.basic_list_item);
        mList = ((ListView) v.findViewById(R.id.listView));
        new GetRssFeed().execute("http://feeds.bbci.co.uk/news/england/rss.xml");

        return v;
    }

    private class GetRssFeed extends AsyncTask<String, Void, Void> {
        @Override
        protected Void doInBackground(String... params) {
            adapter.add("Pizza Steak");
            try {
                RssReader rssReader = new RssReader(params[0]);
                for (RssItem item : rssReader.getItems()) {
                    adapter.add(item.getTitle());
                }
            } catch (Exception e) {
                Log.v("Error Parsing Data", e + "");
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);
            adapter.notifyDataSetChanged();
            mList.setAdapter(adapter);
        }
    }
}

Upvotes: 1

Views: 61

Answers (2)

AGil
AGil

Reputation: 63

Please add the permission on the manifest

<manifest xlmns:android...>
...
<uses-permission android:name="android.permission.INTERNET" />
<application ...
</manifest>

Upvotes: 1

Mahmoud Ibrahim
Mahmoud Ibrahim

Reputation: 1085

The problem may be in the URL that you are using where it isn't a valid RSS feed url,

so that, try to run your code by the this url: http://www.aljazeera.com/xml/rss/all.xml (for testing only).

Upvotes: 0

Related Questions