我一直在做一个我想在世界杯开始前完成的项目。我一直在使用来自AndroidHive的AndroidHive和一个RssReader。我也是android程序的新手,在使用片段时遇到了很多麻烦。
基本上,我希望使用来自每个片段的TextViews和Imageview来显示足球组数据。我一直遇到的问题是应用一个按钮,它实际上打开了活动而不崩溃。这个问题以前曾在这个线程中被问过:
How to start Activity from Fragment? Android
我一直在尝试实现异步任务,但我就是无法让它工作。代码与我发布的链接中所描述的100%相同。
这是两个文件的压缩,有人能帮我吗?http://www.file-upload.net/download-8963794/SlidingMenu.zip.html
提前感谢任何能帮我的人!
发布于 2014-05-27 22:47:55
只需执行以下操作即可使代码正常工作:
只需复制并粘贴如下所示。除了那件事没什么可做的。如果您需要对代码进行更多的解释,请告诉我。
注意:要从片段开始活动,需要使用getActivity(),然后使用这样的意图,
Intent intent = new Intent(getActivity(),
AndroidRssReader.class);
getActivity().startActivity(intent);1)只需在FindPeopleFragment:中稍微修改代码
public class FindPeopleFragment extends Fragment {
public FindPeopleFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_find_people,
container, false);
return rootView;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
Button newPage = (Button) getActivity().findViewById(R.id.button1);
newPage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getActivity(),
AndroidRssReader.class);
getActivity().startActivity(intent);
}
});
}
}2)将AndroidRssReader修改为:
public class AndroidRssReader extends ListActivity {
private List<String> item = new ArrayList<String>();
public static final String MAIN_URL = "http://drinkandtink.bugs3.com/covendos/Android-er%3Fformat%3Dxml";
Context context;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
context = this;
new BackgroundTask(context, MAIN_URL).execute();
}
public void getImpData(String URL) {
try {
URL rssUrl = new URL(URL);
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);
} 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();
}
}
public class BackgroundTask extends AsyncTask<Void, Void, Void> {
Context mcontext;
String someURL;
ProgressDialog pDialog;
public BackgroundTask(Context context, String SomeURL) {
super();
this.mcontext = context;
this.someURL = SomeURL;
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
pDialog = new ProgressDialog(context);
pDialog.setMessage("Checking Network Connection");
pDialog.setIndeterminate(true);
pDialog.setMax(100);
pDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
pDialog.setCancelable(true);
pDialog.show();
}
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
getImpData(someURL);
return null;
}
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
ArrayAdapter<String> itemList = new ArrayAdapter<String>(context,
R.layout.rsslist, item);
setListAdapter(itemList);
pDialog.dismiss();
}
}
private class RSSHandler extends DefaultHandler {
final int stateUnknown = 0;
final int stateTitle = 1;
int state = stateUnknown;
@Override
public void startDocument() throws SAXException {
// TODO Auto-generated method stub
}
@Override
public void endDocument() throws SAXException {
// TODO Auto-generated method stub
}
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
// TODO Auto-generated method stub
if (localName.equalsIgnoreCase("title")) {
state = stateTitle;
} else {
state = stateUnknown;
}
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
// TODO Auto-generated method stub
state = stateUnknown;
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
// TODO Auto-generated method stub
String strCharacters = new String(ch, start, length);
if (state == stateTitle) {
item.add(strCharacters);
}
}
}
}它运行得很好,now..make肯定会接受我对未来观众的回答。快乐..。:D
https://stackoverflow.com/questions/23899694
复制相似问题