Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何处理android中的后退按钮按下_Java_Android_Android Fragments - Fatal编程技术网

Java 如何处理android中的后退按钮按下

Java 如何处理android中的后退按钮按下,java,android,android-fragments,Java,Android,Android Fragments,我有一个扩展片段的类。它从服务器接收数据并加载到片段布局上。数据来自AsyncTask doInBackground。但我面临的一个问题是,若asynctask仍在后台执行,并且用户按下“后退”按钮,则我的应用程序将转到另一个活动。但是当asynctask完成时,它找不到所需的布局,因此导致应用程序崩溃。如何在后台按下DO后退按钮时取消这个异步任务,更重要的是,如何调用后缀在片段中。 这是我的密码: TabsPagerAdapter.java public class TabsPagerAdap

我有一个扩展片段的类。它从服务器接收数据并加载到片段布局上。数据来自AsyncTask doInBackground。但我面临的一个问题是,若asynctask仍在后台执行,并且用户按下“后退”按钮,则我的应用程序将转到另一个活动。但是当asynctask完成时,它找不到所需的布局,因此导致应用程序崩溃。如何在后台按下DO后退按钮时取消这个异步任务,更重要的是,如何调用后缀在片段中。 这是我的密码:

TabsPagerAdapter.java

public class TabsPagerAdapter extends FragmentPagerAdapter {

    public TabsPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int index) {

        switch (index) {
        case 0:
            // Top Rated fragment activity
            return new TopStoriesFragment();
        case 1:
            // Games fragment activity
            return new NationalFragment();
        case 2:
            // Movies fragment activity
            return new InternationalFragment();

        case 3:
            // Movies fragment activity
            return new SportsFragment();

        case 4:
            // Movies fragment activity
            return new TechnologyFragment();
        case 5:
            // Movies fragment activity
            return new BusinessFragment();
        case 6:
            // Movies fragment activity
            return new EntertainmentFragment();
        }


        return null;
    }

    @Override
    public int getCount() {
        // get item count - equal to number of tabs
        return 7;
    }

    public void stop() {
        // get item count - equal to number of tabs
        return;
    }

}
public class MainActivity extends FragmentActivity implements
        ActionBar.TabListener {

    private ViewPager viewPager;
    private TabsPagerAdapter mAdapter;
    private ActionBar actionBar;
    // Tab titles
    private String[] tabs = { "Top Stories", "National", "International", "Sports", "Technology", "Business", "Entertainment"};

    @SuppressLint("NewApi")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        viewPager = (ViewPager) findViewById(R.id.pager);
        actionBar = getActionBar();
        mAdapter = new TabsPagerAdapter(getSupportFragmentManager());

        viewPager.setAdapter(mAdapter);
        actionBar.setHomeButtonEnabled(false);
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);        

        // Adding Tabs
        for (String tab_name : tabs) {
            actionBar.addTab(actionBar.newTab().setText(tab_name)
                    .setTabListener(this));
        }

        /**
         * on swiping the viewpager make respective tab selected
         * */
        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

            @Override
            public void onPageSelected(int position) {
                // on changing the page
                // make respected tab selected
                actionBar.setSelectedNavigationItem(position);
            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
            }

            @Override
            public void onPageScrollStateChanged(int arg0) {
            }
        });
    }

    @Override
    public void onTabReselected(Tab tab, FragmentTransaction ft) {
    }

    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {
        // on tab selected
        // show respected fragment view
        viewPager.setCurrentItem(tab.getPosition());
    }

    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction ft) {
    }

}
public class BusinessFragment extends Fragment {

    public String thehindu = "xxxxx";
    public String toi = "xxxxx";
    public String hindustantimes = "xxxxx";
    public String indianexpress = "xxxxxx";
    public String reuters = "xxxxxxx";

    public String dainikjagaran = "xxxxxx";
    public String dainikbhaskar = "xxxxx";
    public String amarujala = "xxxxxx";

    public String currenturl;
    AlertDialog levelDialog;
    public LayoutInflater inflater;
    ListView listView;
    int mCurCheckPosition;
    SharedPreferences sp;
    String papername;

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

        View rootView = inflater.inflate(R.layout.fragment_data, container,
                false);

        sp = getActivity().getSharedPreferences("myfile",
                getActivity().MODE_PRIVATE);
        papername = sp.getString("Newspaper_name", null);

        feedTitle = (TextView) rootView.findViewById(R.id.feedtitle);
        feedDescribtion = (TextView) rootView
                .findViewById(R.id.feeddescribtion);

        getCurrentURL();

        listView = (ListView) rootView.findViewById(android.R.id.list);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View v,
                    int position, long id) {

                Intent intent = new Intent(getActivity(), ShowDetails.class);
                Bundle bundle = new Bundle();
                bundle.putString("keyTitle", myRssFeed.getItem(position)
                        .getTitle());
                bundle.putString("keyDescription", myRssFeed.getItem(position)
                        .getDescription());
                bundle.putString("keyLink", myRssFeed.getItem(position)
                        .getLink());
                bundle.putString("keyPubdate", myRssFeed.getItem(position)
                        .getPubdate());
                intent.putExtras(bundle);
                startActivity(intent);

            }
        });

        startReadRss();

        return rootView;
    }

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

        @Override
        protected void onPostExecute(Void result) {
            // TODO Auto-generated method stub
            displayRss();
        }

        @Override
        protected void onPreExecute() {
            // TODO Auto-generated method stub
            preReadRss();
        }

        @Override
        protected void onProgressUpdate(Void... values) {
            // TODO Auto-generated method stub
            // super.onProgressUpdate(values);
        }

        @Override
        protected Void doInBackground(Void... arg0) {
            // TODO Auto-generated method stub
            readRss();
            return null;
        }

    }

    private RSSFeed myRssFeed = null;

    TextView feedTitle;
    TextView feedDescribtion;

    // TextView feedPubdate;
    // TextView feedLink;

    public class MyCustomAdapter extends ArrayAdapter<RSSItem> {

        public MyCustomAdapter(Context context, int textViewResourceId,
                List<RSSItem> list) {
            super(context, textViewResourceId, list);
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            // return super.getView(position, convertView, parent);

            View row = convertView;

            if (row == null) {
                inflater = LayoutInflater.from(getActivity());
                row = inflater.inflate(R.layout.row, parent, false);
            }

            TextView listTitle = (TextView) row.findViewById(R.id.listtitle);
            listTitle.setText(myRssFeed.getList().get(position).getTitle());
            TextView listPubdate = (TextView) row
                    .findViewById(R.id.listpubdate);
            listPubdate.setText(myRssFeed.getList().get(position).getPubdate());

            return row;
        }
    }

    private void startReadRss() {
        new RssLoadingTask().execute();
    }

    private void getCurrentURL() {

        if (papername.equalsIgnoreCase("The Times of India")) {
            currenturl = toi;
        } else if (papername.equalsIgnoreCase("The Hindu")) {
            currenturl = thehindu;
        } else if (papername.equalsIgnoreCase("The Hindustan Times")) {
            currenturl = hindustantimes;
        } else if (papername.equalsIgnoreCase("The Indian Express")) {
            currenturl = indianexpress;
        } else if (papername.equalsIgnoreCase("Reuters")) {
            currenturl = reuters;
        } else if (papername.equalsIgnoreCase("दैनिक जागरण")) {
            currenturl = dainikjagaran;
        } else if (papername.equalsIgnoreCase("दैनिक भास्कर")) {
            currenturl = dainikbhaskar;
        } else if (papername.equalsIgnoreCase("अमर उजाला")) {
            currenturl = amarujala;
        }
        // else if(papername.equalsIgnoreCase("Times of India"))
        // {
        //
        // }
        // else if(papername.equalsIgnoreCase("Times of India"))
        // {
        //
        // }
        //

    }

    private void preReadRss() {
        feedTitle.setText("--- wait ---");
        feedDescribtion.setText("");
        // feedPubdate.setText("");
        // feedLink.setText("");
        listView.setAdapter(null);

        // Toast.makeText(getActivity(), "Reading RSS, Please wait.",
        // Toast.LENGTH_LONG)
        // .show();
    }

    private void readRss() {

        try {
            URL rssUrl = new URL(currenturl);
            SAXParserFactory mySAXParserFactory = SAXParserFactory
                    .newInstance();
            SAXParser mySAXParser = mySAXParserFactory.newSAXParser();
            XMLReader myXMLReader = mySAXParser.getXMLReader();
            RSSHandler myRSSHandler = new RSSHandler();
            myXMLReader.setContentHandler(myRSSHandler);
            InputSource myInputSource = new InputSource(rssUrl.openStream());
            myXMLReader.parse(myInputSource);

            myRssFeed = myRSSHandler.getFeed();

        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ParserConfigurationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SAXException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    private void displayRss() {
        if (myRssFeed != null) {
            Calendar c = Calendar.getInstance();
            // String strCurrentTiime = "\n(Time of Reading - "
            // + c.get(Calendar.HOUR_OF_DAY)
            // + " Hrs. : "
            // + c.get(Calendar.MINUTE) + " Mins.)\n" +c.get(Calendar.AM_PM);

            SimpleDateFormat sdf = new SimpleDateFormat(
                    "MMMM-dd-yyyy HH:mm:ss a");
            String strCurrentTiime = sdf.format(c.getTime());

            feedTitle.setText(papername);
            feedDescribtion.setText(strCurrentTiime);
            // feedPubdate.setText(myRssFeed.getPubdate());
            // feedLink.setText(myRssFeed.getLink());

            MyCustomAdapter adapter = new MyCustomAdapter(getActivity(),
                    R.layout.row, myRssFeed.getList());
            listView.setAdapter(adapter);

        }
    }

}
MainActivity.java

public class TabsPagerAdapter extends FragmentPagerAdapter {

    public TabsPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int index) {

        switch (index) {
        case 0:
            // Top Rated fragment activity
            return new TopStoriesFragment();
        case 1:
            // Games fragment activity
            return new NationalFragment();
        case 2:
            // Movies fragment activity
            return new InternationalFragment();

        case 3:
            // Movies fragment activity
            return new SportsFragment();

        case 4:
            // Movies fragment activity
            return new TechnologyFragment();
        case 5:
            // Movies fragment activity
            return new BusinessFragment();
        case 6:
            // Movies fragment activity
            return new EntertainmentFragment();
        }


        return null;
    }

    @Override
    public int getCount() {
        // get item count - equal to number of tabs
        return 7;
    }

    public void stop() {
        // get item count - equal to number of tabs
        return;
    }

}
public class MainActivity extends FragmentActivity implements
        ActionBar.TabListener {

    private ViewPager viewPager;
    private TabsPagerAdapter mAdapter;
    private ActionBar actionBar;
    // Tab titles
    private String[] tabs = { "Top Stories", "National", "International", "Sports", "Technology", "Business", "Entertainment"};

    @SuppressLint("NewApi")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        viewPager = (ViewPager) findViewById(R.id.pager);
        actionBar = getActionBar();
        mAdapter = new TabsPagerAdapter(getSupportFragmentManager());

        viewPager.setAdapter(mAdapter);
        actionBar.setHomeButtonEnabled(false);
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);        

        // Adding Tabs
        for (String tab_name : tabs) {
            actionBar.addTab(actionBar.newTab().setText(tab_name)
                    .setTabListener(this));
        }

        /**
         * on swiping the viewpager make respective tab selected
         * */
        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

            @Override
            public void onPageSelected(int position) {
                // on changing the page
                // make respected tab selected
                actionBar.setSelectedNavigationItem(position);
            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
            }

            @Override
            public void onPageScrollStateChanged(int arg0) {
            }
        });
    }

    @Override
    public void onTabReselected(Tab tab, FragmentTransaction ft) {
    }

    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {
        // on tab selected
        // show respected fragment view
        viewPager.setCurrentItem(tab.getPosition());
    }

    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction ft) {
    }

}
public class BusinessFragment extends Fragment {

    public String thehindu = "xxxxx";
    public String toi = "xxxxx";
    public String hindustantimes = "xxxxx";
    public String indianexpress = "xxxxxx";
    public String reuters = "xxxxxxx";

    public String dainikjagaran = "xxxxxx";
    public String dainikbhaskar = "xxxxx";
    public String amarujala = "xxxxxx";

    public String currenturl;
    AlertDialog levelDialog;
    public LayoutInflater inflater;
    ListView listView;
    int mCurCheckPosition;
    SharedPreferences sp;
    String papername;

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

        View rootView = inflater.inflate(R.layout.fragment_data, container,
                false);

        sp = getActivity().getSharedPreferences("myfile",
                getActivity().MODE_PRIVATE);
        papername = sp.getString("Newspaper_name", null);

        feedTitle = (TextView) rootView.findViewById(R.id.feedtitle);
        feedDescribtion = (TextView) rootView
                .findViewById(R.id.feeddescribtion);

        getCurrentURL();

        listView = (ListView) rootView.findViewById(android.R.id.list);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View v,
                    int position, long id) {

                Intent intent = new Intent(getActivity(), ShowDetails.class);
                Bundle bundle = new Bundle();
                bundle.putString("keyTitle", myRssFeed.getItem(position)
                        .getTitle());
                bundle.putString("keyDescription", myRssFeed.getItem(position)
                        .getDescription());
                bundle.putString("keyLink", myRssFeed.getItem(position)
                        .getLink());
                bundle.putString("keyPubdate", myRssFeed.getItem(position)
                        .getPubdate());
                intent.putExtras(bundle);
                startActivity(intent);

            }
        });

        startReadRss();

        return rootView;
    }

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

        @Override
        protected void onPostExecute(Void result) {
            // TODO Auto-generated method stub
            displayRss();
        }

        @Override
        protected void onPreExecute() {
            // TODO Auto-generated method stub
            preReadRss();
        }

        @Override
        protected void onProgressUpdate(Void... values) {
            // TODO Auto-generated method stub
            // super.onProgressUpdate(values);
        }

        @Override
        protected Void doInBackground(Void... arg0) {
            // TODO Auto-generated method stub
            readRss();
            return null;
        }

    }

    private RSSFeed myRssFeed = null;

    TextView feedTitle;
    TextView feedDescribtion;

    // TextView feedPubdate;
    // TextView feedLink;

    public class MyCustomAdapter extends ArrayAdapter<RSSItem> {

        public MyCustomAdapter(Context context, int textViewResourceId,
                List<RSSItem> list) {
            super(context, textViewResourceId, list);
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            // return super.getView(position, convertView, parent);

            View row = convertView;

            if (row == null) {
                inflater = LayoutInflater.from(getActivity());
                row = inflater.inflate(R.layout.row, parent, false);
            }

            TextView listTitle = (TextView) row.findViewById(R.id.listtitle);
            listTitle.setText(myRssFeed.getList().get(position).getTitle());
            TextView listPubdate = (TextView) row
                    .findViewById(R.id.listpubdate);
            listPubdate.setText(myRssFeed.getList().get(position).getPubdate());

            return row;
        }
    }

    private void startReadRss() {
        new RssLoadingTask().execute();
    }

    private void getCurrentURL() {

        if (papername.equalsIgnoreCase("The Times of India")) {
            currenturl = toi;
        } else if (papername.equalsIgnoreCase("The Hindu")) {
            currenturl = thehindu;
        } else if (papername.equalsIgnoreCase("The Hindustan Times")) {
            currenturl = hindustantimes;
        } else if (papername.equalsIgnoreCase("The Indian Express")) {
            currenturl = indianexpress;
        } else if (papername.equalsIgnoreCase("Reuters")) {
            currenturl = reuters;
        } else if (papername.equalsIgnoreCase("दैनिक जागरण")) {
            currenturl = dainikjagaran;
        } else if (papername.equalsIgnoreCase("दैनिक भास्कर")) {
            currenturl = dainikbhaskar;
        } else if (papername.equalsIgnoreCase("अमर उजाला")) {
            currenturl = amarujala;
        }
        // else if(papername.equalsIgnoreCase("Times of India"))
        // {
        //
        // }
        // else if(papername.equalsIgnoreCase("Times of India"))
        // {
        //
        // }
        //

    }

    private void preReadRss() {
        feedTitle.setText("--- wait ---");
        feedDescribtion.setText("");
        // feedPubdate.setText("");
        // feedLink.setText("");
        listView.setAdapter(null);

        // Toast.makeText(getActivity(), "Reading RSS, Please wait.",
        // Toast.LENGTH_LONG)
        // .show();
    }

    private void readRss() {

        try {
            URL rssUrl = new URL(currenturl);
            SAXParserFactory mySAXParserFactory = SAXParserFactory
                    .newInstance();
            SAXParser mySAXParser = mySAXParserFactory.newSAXParser();
            XMLReader myXMLReader = mySAXParser.getXMLReader();
            RSSHandler myRSSHandler = new RSSHandler();
            myXMLReader.setContentHandler(myRSSHandler);
            InputSource myInputSource = new InputSource(rssUrl.openStream());
            myXMLReader.parse(myInputSource);

            myRssFeed = myRSSHandler.getFeed();

        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ParserConfigurationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SAXException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    private void displayRss() {
        if (myRssFeed != null) {
            Calendar c = Calendar.getInstance();
            // String strCurrentTiime = "\n(Time of Reading - "
            // + c.get(Calendar.HOUR_OF_DAY)
            // + " Hrs. : "
            // + c.get(Calendar.MINUTE) + " Mins.)\n" +c.get(Calendar.AM_PM);

            SimpleDateFormat sdf = new SimpleDateFormat(
                    "MMMM-dd-yyyy HH:mm:ss a");
            String strCurrentTiime = sdf.format(c.getTime());

            feedTitle.setText(papername);
            feedDescribtion.setText(strCurrentTiime);
            // feedPubdate.setText(myRssFeed.getPubdate());
            // feedLink.setText(myRssFeed.getLink());

            MyCustomAdapter adapter = new MyCustomAdapter(getActivity(),
                    R.layout.row, myRssFeed.getList());
            listView.setAdapter(adapter);

        }
    }

}
BusinessFragment.java

public class TabsPagerAdapter extends FragmentPagerAdapter {

    public TabsPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int index) {

        switch (index) {
        case 0:
            // Top Rated fragment activity
            return new TopStoriesFragment();
        case 1:
            // Games fragment activity
            return new NationalFragment();
        case 2:
            // Movies fragment activity
            return new InternationalFragment();

        case 3:
            // Movies fragment activity
            return new SportsFragment();

        case 4:
            // Movies fragment activity
            return new TechnologyFragment();
        case 5:
            // Movies fragment activity
            return new BusinessFragment();
        case 6:
            // Movies fragment activity
            return new EntertainmentFragment();
        }


        return null;
    }

    @Override
    public int getCount() {
        // get item count - equal to number of tabs
        return 7;
    }

    public void stop() {
        // get item count - equal to number of tabs
        return;
    }

}
public class MainActivity extends FragmentActivity implements
        ActionBar.TabListener {

    private ViewPager viewPager;
    private TabsPagerAdapter mAdapter;
    private ActionBar actionBar;
    // Tab titles
    private String[] tabs = { "Top Stories", "National", "International", "Sports", "Technology", "Business", "Entertainment"};

    @SuppressLint("NewApi")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        viewPager = (ViewPager) findViewById(R.id.pager);
        actionBar = getActionBar();
        mAdapter = new TabsPagerAdapter(getSupportFragmentManager());

        viewPager.setAdapter(mAdapter);
        actionBar.setHomeButtonEnabled(false);
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);        

        // Adding Tabs
        for (String tab_name : tabs) {
            actionBar.addTab(actionBar.newTab().setText(tab_name)
                    .setTabListener(this));
        }

        /**
         * on swiping the viewpager make respective tab selected
         * */
        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

            @Override
            public void onPageSelected(int position) {
                // on changing the page
                // make respected tab selected
                actionBar.setSelectedNavigationItem(position);
            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
            }

            @Override
            public void onPageScrollStateChanged(int arg0) {
            }
        });
    }

    @Override
    public void onTabReselected(Tab tab, FragmentTransaction ft) {
    }

    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {
        // on tab selected
        // show respected fragment view
        viewPager.setCurrentItem(tab.getPosition());
    }

    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction ft) {
    }

}
public class BusinessFragment extends Fragment {

    public String thehindu = "xxxxx";
    public String toi = "xxxxx";
    public String hindustantimes = "xxxxx";
    public String indianexpress = "xxxxxx";
    public String reuters = "xxxxxxx";

    public String dainikjagaran = "xxxxxx";
    public String dainikbhaskar = "xxxxx";
    public String amarujala = "xxxxxx";

    public String currenturl;
    AlertDialog levelDialog;
    public LayoutInflater inflater;
    ListView listView;
    int mCurCheckPosition;
    SharedPreferences sp;
    String papername;

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

        View rootView = inflater.inflate(R.layout.fragment_data, container,
                false);

        sp = getActivity().getSharedPreferences("myfile",
                getActivity().MODE_PRIVATE);
        papername = sp.getString("Newspaper_name", null);

        feedTitle = (TextView) rootView.findViewById(R.id.feedtitle);
        feedDescribtion = (TextView) rootView
                .findViewById(R.id.feeddescribtion);

        getCurrentURL();

        listView = (ListView) rootView.findViewById(android.R.id.list);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View v,
                    int position, long id) {

                Intent intent = new Intent(getActivity(), ShowDetails.class);
                Bundle bundle = new Bundle();
                bundle.putString("keyTitle", myRssFeed.getItem(position)
                        .getTitle());
                bundle.putString("keyDescription", myRssFeed.getItem(position)
                        .getDescription());
                bundle.putString("keyLink", myRssFeed.getItem(position)
                        .getLink());
                bundle.putString("keyPubdate", myRssFeed.getItem(position)
                        .getPubdate());
                intent.putExtras(bundle);
                startActivity(intent);

            }
        });

        startReadRss();

        return rootView;
    }

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

        @Override
        protected void onPostExecute(Void result) {
            // TODO Auto-generated method stub
            displayRss();
        }

        @Override
        protected void onPreExecute() {
            // TODO Auto-generated method stub
            preReadRss();
        }

        @Override
        protected void onProgressUpdate(Void... values) {
            // TODO Auto-generated method stub
            // super.onProgressUpdate(values);
        }

        @Override
        protected Void doInBackground(Void... arg0) {
            // TODO Auto-generated method stub
            readRss();
            return null;
        }

    }

    private RSSFeed myRssFeed = null;

    TextView feedTitle;
    TextView feedDescribtion;

    // TextView feedPubdate;
    // TextView feedLink;

    public class MyCustomAdapter extends ArrayAdapter<RSSItem> {

        public MyCustomAdapter(Context context, int textViewResourceId,
                List<RSSItem> list) {
            super(context, textViewResourceId, list);
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            // return super.getView(position, convertView, parent);

            View row = convertView;

            if (row == null) {
                inflater = LayoutInflater.from(getActivity());
                row = inflater.inflate(R.layout.row, parent, false);
            }

            TextView listTitle = (TextView) row.findViewById(R.id.listtitle);
            listTitle.setText(myRssFeed.getList().get(position).getTitle());
            TextView listPubdate = (TextView) row
                    .findViewById(R.id.listpubdate);
            listPubdate.setText(myRssFeed.getList().get(position).getPubdate());

            return row;
        }
    }

    private void startReadRss() {
        new RssLoadingTask().execute();
    }

    private void getCurrentURL() {

        if (papername.equalsIgnoreCase("The Times of India")) {
            currenturl = toi;
        } else if (papername.equalsIgnoreCase("The Hindu")) {
            currenturl = thehindu;
        } else if (papername.equalsIgnoreCase("The Hindustan Times")) {
            currenturl = hindustantimes;
        } else if (papername.equalsIgnoreCase("The Indian Express")) {
            currenturl = indianexpress;
        } else if (papername.equalsIgnoreCase("Reuters")) {
            currenturl = reuters;
        } else if (papername.equalsIgnoreCase("दैनिक जागरण")) {
            currenturl = dainikjagaran;
        } else if (papername.equalsIgnoreCase("दैनिक भास्कर")) {
            currenturl = dainikbhaskar;
        } else if (papername.equalsIgnoreCase("अमर उजाला")) {
            currenturl = amarujala;
        }
        // else if(papername.equalsIgnoreCase("Times of India"))
        // {
        //
        // }
        // else if(papername.equalsIgnoreCase("Times of India"))
        // {
        //
        // }
        //

    }

    private void preReadRss() {
        feedTitle.setText("--- wait ---");
        feedDescribtion.setText("");
        // feedPubdate.setText("");
        // feedLink.setText("");
        listView.setAdapter(null);

        // Toast.makeText(getActivity(), "Reading RSS, Please wait.",
        // Toast.LENGTH_LONG)
        // .show();
    }

    private void readRss() {

        try {
            URL rssUrl = new URL(currenturl);
            SAXParserFactory mySAXParserFactory = SAXParserFactory
                    .newInstance();
            SAXParser mySAXParser = mySAXParserFactory.newSAXParser();
            XMLReader myXMLReader = mySAXParser.getXMLReader();
            RSSHandler myRSSHandler = new RSSHandler();
            myXMLReader.setContentHandler(myRSSHandler);
            InputSource myInputSource = new InputSource(rssUrl.openStream());
            myXMLReader.parse(myInputSource);

            myRssFeed = myRSSHandler.getFeed();

        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ParserConfigurationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SAXException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    private void displayRss() {
        if (myRssFeed != null) {
            Calendar c = Calendar.getInstance();
            // String strCurrentTiime = "\n(Time of Reading - "
            // + c.get(Calendar.HOUR_OF_DAY)
            // + " Hrs. : "
            // + c.get(Calendar.MINUTE) + " Mins.)\n" +c.get(Calendar.AM_PM);

            SimpleDateFormat sdf = new SimpleDateFormat(
                    "MMMM-dd-yyyy HH:mm:ss a");
            String strCurrentTiime = sdf.format(c.getTime());

            feedTitle.setText(papername);
            feedDescribtion.setText(strCurrentTiime);
            // feedPubdate.setText(myRssFeed.getPubdate());
            // feedLink.setText(myRssFeed.getLink());

            MyCustomAdapter adapter = new MyCustomAdapter(getActivity(),
                    R.layout.row, myRssFeed.getList());
            listView.setAdapter(adapter);

        }
    }

}
公共类BusinessFragment扩展了片段{
公共字符串thehindu=“xxxxx”;
公共字符串toi=“xxxxx”;
公共字符串statimes=“xxxxx”;
公共字符串indianexpress=“xxxxxx”;
公共字符串reuters=“xxxxxxx”;
公共字符串dainikjagaran=“xxxxxx”;
公共字符串dainikbhaskar=“xxxxx”;
公共字符串amarujala=“xxxxxx”;
公共字符串currenturl;
AlertDialog-levelDialog;
公共场所;充气机;
列表视图列表视图;
int mCurCheckPosition;
共享参考sp;
字符串papername;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图根视图=充气机。充气(R.layout.fragment_数据,容器,
假);
sp=getActivity().getSharedReferences(“myfile”,
getActivity().MODE_PRIVATE);
papername=sp.getString(“报纸名称”,null);
feedTitle=(TextView)rootView.findViewById(R.id.feedTitle);
FeedDescription=(文本视图)根视图
.findViewById(R.id.FeedDescription);
getCurrentURL();
listView=(listView)rootView.findviewbyd(android.R.id.list);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父视图、视图v、,
内部位置,长id){
Intent Intent=新的Intent(getActivity(),ShowDetails.class);
Bundle=新Bundle();
bundle.putString(“keyTitle”,myRssFeed.getItem(位置)
.getTitle());
bundle.putString(“keyDescription”,myRssFeed.getItem(位置)
.getDescription());
bundle.putString(“键链接”,myRssFeed.getItem(位置)
.getLink());
bundle.putString(“keyPubdate”,myRssFeed.getItem(位置)
.getPubdate());
意向。额外支出(捆绑);
星触觉(意向);
}
});
startReadRss();
返回rootView;
}
公共类RssLoadingTask扩展异步任务{
@凌驾
受保护的void onPostExecute(void结果){
//TODO自动生成的方法存根
displayRss();
}
@凌驾
受保护的void onPreExecute(){
//TODO自动生成的方法存根
preReadRss();
}
@凌驾
受保护的void onProgressUpdate(void…值){
//TODO自动生成的方法存根
//super.onProgressUpdate(值);
}
@凌驾
受保护的Void doInBackground(Void…arg0){
//TODO自动生成的方法存根
readRss();
返回null;
}
}
私有RSSFeed myRssFeed=null;
文本视图feedTitle;
文本视图反馈描述;
//TextView feedPubdate;
//文本视图feedLink;
公共类MyCustomAdapter扩展了ArrayAdapter{
公共MyCustomAdapter(上下文,int textViewResourceId,
(列表){
super(上下文、textViewResourceId、列表);
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
//TODO自动生成的方法存根
//返回super.getView(position、convertView、parent);
视图行=转换视图;
if(行==null){
充气器=从(getActivity())开始充气;
行=充气机。充气(R.layout.row,父级,false);
}
TextView listTitle=(TextView)row.findViewById(R.id.listTitle);
listTitle.setText(myRssFeed.getList().get(position.getTitle());
TextView listPubdate=(TextView)行
.findViewById(R.id.listpubdate);
listPubdate.setText(myRssFeed.getList().get(position.getPubdate());
返回行;
}
}
私有void startReadRss(){
新的RssLoadingTask().execute();
}
私有void getCurrentURL(){
if(papername.equalsIgnoreCase(“印度时报”)){
currenturl=toi;
}else if(papername.equalsIgnoreCase(“印度教”)){
currenturl=印度教;
}else if(papername.equalsIgnoreCase(“印度斯坦时报”)){
currenturl=1次;
}else if(papername.equalsIgnoreCase(“印度快车”)){
currenturl=indianexpress;
}else if(papername.equalsIgnoreCase(“路透社”)){
currenturl=路透社;
}else if(papername.equalsIgnoreCase(“दैनिक जागरण")) {
currenturl=dainikjagaran;
}else if(papername.equalsIgnoreCase(“दैनिक भास्कर")) {
currenturl=dainikbhaskar;
}else if(papername.equalsIgnoreCase(“अमर उजाला")) {
currenturl=amarujala;
}
//else if(papername.equalsIgnoreCase(“印度时报”))
// {
//
// }
//else if(papername.equalsIgnoreCase(“印度时报”))