你好吗?带着安卓的问题,这是一个NullPointerException ArrayAdapter adapter.Im初级开发,对不起。
我有这个密码
private String[] titulares;
private ListView listadoTitulos;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Permisos
StrictMode.ThreadPolicy permiso = new StrictMode.ThreadPolicy.Builder().permitAll().build();
//Damos los permisos
StrictMode.setThreadPolicy(permiso);
listadoTitulos = (ListView) findViewById(R.id.lvtitulos);
try {
url = new URL("http://www.videotutoriales.es/android-xml/cursos.xml");
leerXml();
} catch (MalformedURLException e) {
e.printStackTrace();
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,titulares);
listadoTitulos.setAdapter(adapter);
}
NullPointerException ArrayAdapter in logCat
05-12 03:25:18.807 32599-32599/com.cig.trlxml E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cig.trlxml/com.cig.trlxml.MainActivity}: java.lang.NullPointerException
在这一行
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,titulares);
listadoTitulos.setAdapter(adapter);
XML文件是
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<ImageView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:src="@mipmap/logon" />
<ListView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/lvtitulos"
android:layout_below="@+id/imageView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
怎么啦?
谢谢
编辑
private void leerXml() {
//Es necesario para utilizar la clase XMLPullParser
XmlPullParserFactory factory;
XmlPullParser xml;
//Variable para los eventos
int evento;
boolean titulo;
ArrayList<String> titulos;
//Puedo leer el titulo?
titulo = false;
titulos = new ArrayList<String>();
try {
factory = XmlPullParserFactory.newInstance();
xml=factory.newPullParser();
//obtenemos la URL
xml.setInput(url.openStream(),"UTF-8");
evento = xml.getEventType();
//Leer cada uno de los eventos hasta el final
while (evento != XmlPullParser.END_DOCUMENT){
switch(evento){
case XmlPullParser.START_TAG:
if(xml.getName().equals("titulo")){
titulo = true;
}
break;
case XmlPullParser.TEXT:
if(titulo = true){
titulos.add(xml.getText());
}
break;
case XmlPullParser.END_TAG:
if(xml.getName().equals("titulo")) {
titulo = false;
}
break;
}
evento = xml.next();
}
titulares = new String[titulos.size()];
for (int i = 0; i< titulos.size(); i++){
titulares[i] = titulos.get(i);
}
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
}
发布于 2015-05-12 00:36:28
异常的原因是您重新初始化了titulares
数组,但在创建适配器时尝试将其用作数据:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,titulares);
listadoTitulos.setAdapter(adapter);
就像这样编码:
titulares = new String[your_lenght];
在适配器创建或填充它之前,如果您有它的话。
发布于 2015-05-12 00:38:26
抛出NullPointerException是因为它试图将值titularis传递给ArrayAdapter的构造函数,但是您从未定义过titularis,所以它仍然是空的。
尝试在onCreate()中初始化标题,如下所示
titularis = new String[2];
在初始化ArrayAdapter之前
发布于 2018-01-21 13:16:49
您的leerxml()方法不能正常工作,请检查internet权限或internet访问。因此,不正确运行的方法--您试图传递给ArrayAdapter的字符串数组--没有被初始化,最终将null传递给ArrayAdapter构造函数。
此外,在您的行中的leerxml()内部有一个问题。
if(titulo = true){
用修改它
如果(Titulo){
正如您在API中看到的那样,ArrayAdapter构造函数接收三个参数
ArrayAdapter(上下文、int资源、T[]对象)
尝试将一些日志消息放入Try - catch块中,您将看到该方法没有正确运行。
https://stackoverflow.com/questions/30185625
复制