私はxmlファイルを解析できるようにオンラインで見つかったコードを試しています。
異なる解析フィールドがlogcatに表示されます。onPostExecute()のAsyncTask doInBackground()から読み込まれたリストを呼び出す
doInBackground()のAsyncTaskで解析が行われ、その結果、特定のURLのフィールドを表示するために使用され、logcatに正しく表示されたリストの作成が行われます。
私が今したいことは、実行後のフィールドを表示できるかどうかを確認することです。
私はlogcatの表示をdoinBackground()からonPostExecute()に許可するコメントアウトされたコードブロックを移動しました。
私は私のコードをコンパイルすると、私はエラーを取得:この方法は、私はこの問題を解決することができますどのようにスーパータイプから
のメソッドをオーバーライドまたは実装していませんか?私は何か基本的なものがありますか?
public class MainActivity extends Activity {
public static final String LOG_TAG = "MainActivity.java";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
// parse our XML
new parseXmlAsync().execute();
} catch (NullPointerException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
private class parseXmlAsync extends AsyncTask<String, String, String> {
@Override
protected String doInBackground(String... strings) {
try {
// initialize our input source variable
InputSource inputSource = null;
// XML from URL
URL url = new URL(
"http://feeds.news24.com/articles/fin24/Tech/rss");
inputSource = new InputSource(url.openStream());
// instantiate SAX parser
SAXParserFactory saxParserFactory = SAXParserFactory
.newInstance();
SAXParser saxParser = saxParserFactory.newSAXParser();
// get the XML reader
XMLReader xmlReader = saxParser.getXMLReader();
// prepare and set the XML content or data handler before
// parsing
XmlContentHandler xmlContentHandler = new XmlContentHandler();
xmlReader.setContentHandler(xmlContentHandler)
// parse the XML input source
xmlReader.parse(inputSource);
// put the parsed data to a List
List<ParsedDataSet> parsedDataSet = xmlContentHandler.getParsedData();
} catch (NullPointerException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(List<ParsedDataSet> parsedDataSet) {
// use an iterator so we can loop through the data
Iterator<ParsedDataSet> i = parsedDataSet.iterator();
ParsedDataSet dataItem;
while (i.hasNext()) {
dataItem = (ParsedDataSet) i.next();
/*
* parentTag can also represent the main type of data
*/
String parentTag = dataItem.getParentTag();
Log.v(LOG_TAG, "parentTag: " + parentTag);
if (parentTag.equals("item")) {
Log.v(LOG_TAG, "Title: " + dataItem.getTitle());
Log.v(LOG_TAG, "Description: " + dataItem.getDescription());
Log.v(LOG_TAG, "URL: " + dataItem.getLink());
}
}
}
}
}
ありがとうございます。私はあなたの提案を試み、それは働いた。私はまた、私がこれを理解しようとしているように働いたK Neeraj Lalによって言及された方法1も、間違いをもう一度繰り返さない。 –