Android 在arraylist中获取更多信息
我正在开发一个Android应用程序,用于从web上的XML文件中读取一些信息。起初,我在解析时遇到了一个问题。现在我的问题是我的代码只读取一个信息。我已经制作了我的班级电影。如何在arraylist中插入该文件中的所有信息。先谢谢你Android 在arraylist中获取更多信息,android,xml,arraylist,xml-parsing,Android,Xml,Arraylist,Xml Parsing,我正在开发一个Android应用程序,用于从web上的XML文件中读取一些信息。起初,我在解析时遇到了一个问题。现在我的问题是我的代码只读取一个信息。我已经制作了我的班级电影。如何在arraylist中插入该文件中的所有信息。先谢谢你 public class FilmListActivity extends ListActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCre
public class FilmListActivity extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new WebService() {
@Override
protected ArrayList<MyFilm> doInBackground(Object... params) {
ArrayList<MyFilm> arr = new ArrayList<MyFilm>();
Intent intent = getIntent();
String pkg = getPackageName();
try {
MyFilm parametriRicerca = new MyFilm();
parametriRicerca = (MyFilm) intent.getSerializableExtra(pkg+".MyFilm");
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
URL input = new URL("http://whatdowedo.altervista.org/griffith_list2.xml");
xpp.setInput(input.openStream(), null);
int eventType = xpp.getEventType();
String currentTag = null;
MyFilm tmp = new MyFilm();
String title = null;
String regista = null;
String attore = null;
String genere = null;
String paese = null;
while (eventType != XmlPullParser.END_DOCUMENT) {
if (eventType == XmlPullParser.START_TAG) {
currentTag = xpp.getName();
} else if (eventType == XmlPullParser.TEXT) {
if ("title".equals(currentTag)) {
title = xpp.getText().trim();
}
if("director".equals(currentTag)){
regista = xpp.getText().trim();
}
if("country".equals(currentTag)){
paese = xpp.getText().trim();
}
if("genre".equals(currentTag)){
genere = xpp.getText().trim();
}
if("cast".equals(currentTag)){
attore = xpp.getText().trim();
}
if(parametriRicerca.getTitle().equals(title)){
arr.add(parametriRicerca);
}
}
eventType = xpp.next();
}
} catch (Exception e) {
e.printStackTrace();
}
return arr;
}
}.execute();
}
abstract class WebService extends AsyncTask<Object, MyFilm, ArrayList<MyFilm>> {
public WebService() {
super();
}
@Override
protected void onPreExecute() {
}
@Override
protected abstract ArrayList<MyFilm> doInBackground(Object... params);
@Override
protected void onPostExecute(ArrayList<MyFilm> result) {
super.onPostExecute(result);
FilmsAdapterView adapter = new FilmsAdapterView(FilmListActivity.this,result);
setListAdapter(adapter);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}你只阅读一条信息到底是什么意思。我知道你只是在这里添加了arr.addParameterica;更重要的是,如果你有MyFilm类,为什么你需要arraylist。。。。只需将所有内容存储在类对象中,例如:genre=xpp.getText.trim;tmp.genre=genre;等