作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前我有 14 个元素添加到数组列表中,但我希望它们显示在 ListView Activity 中,到目前为止我有:
public class ListView extends ListActivity{
static final String baseURL ="http://www.dublincity.ie/dublintraffic/cpdata.xml?1354720067473";
TextView tvcp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);
StringBuilder URL = new StringBuilder(baseURL);
String fullURL = URL.toString();
try{
URL website = new URL(fullURL);
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
HandelingXML gettingData = new HandelingXML();
xr.setContentHandler(gettingData);
xr.parse(new InputSource(website.openStream()));
ArrayList<CarparkNode>carparks = gettingData.getCarparks();
this.setListAdapter(
new ArrayAdapter<CarparkNode>(ListView.this,R.layout.listview, android.R.id.list, carparks)
);
}catch(Exception e){
tvcp.setText("error");
}
}
}
但是,每次我运行它都会崩溃,我不知道为什么,因为我在使用简单数组之前就已经这样做了。如果有人能指出我做错了什么并提供解决方案,那将非常感谢!
最佳答案
首先不要给类名 ListView
这是Android中预定义的类
第二 不要在 UI 线程上执行网络操作。
编辑:
原因:
Android 3.x 或更高版本的设备将不允许在 UI 线程中执行网络操作,当您尝试这样做时它会抛出一个异常,说明您正在 UI 线程中执行网络操作,即 NetworkOnMainThreadException
。所以你需要做的是创建一个单独的线程来执行网络操作或AsyncTask。
关于android - 如何在 ListView 中显示 arrayList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15840828/
我是一名优秀的程序员,十分优秀!