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