Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java NullPointerException ArrayAdapter适配器Android XML_Java_Android_Xml_Nullpointerexception - Fatal编程技术网

Java NullPointerException ArrayAdapter适配器Android XML

Java NullPointerException ArrayAdapter适配器Android XML,java,android,xml,nullpointerexception,Java,Android,Xml,Nullpointerexception,你好吗?android的问题来了,这是一个NullPointerException ArrayAdapter适配器。对不起,我是一个初级开发人员 我有这个密码 private String[] titulares; private ListView listadoTitulos; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); s

你好吗?android的问题来了,这是一个NullPointerException ArrayAdapter适配器。对不起,我是一个初级开发人员

我有这个密码

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);
}
在这一行

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" />
怎么了

多谢各位

编辑


出现异常的原因是您从未初始化titulares数组,但在创建适配器时尝试将其用作数据:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,titulares);
    listadoTitulos.setAdapter(adapter);

在适配器创建或使用内容填充它之前(如果您在那里),会抛出NullPointerException,因为它试图将值titularis传递给ArrayAdapter的构造函数,但您从未定义过titularis,因此它仍然为null

尝试在onCreate中初始化titularis,如下所示

titularis = new String[2];

初始化ArrayAdapter之前,请检查internet权限或internet访问。因此,试图传递给ArrayAdapter的字符串数组没有正确运行的方法没有得到初始化,最终将null传递给ArrayAdapter构造函数

此外,在您的行中插入leerxml时也会遇到问题

iftitulo=真{

换成

伊夫提特罗{

正如您在API中看到的,ArrayAdapter构造函数接收三个参数

ArrayAdapterContext上下文,int资源,T[]对象

当前环境 包含要在实例化视图时使用的TextView的布局文件的资源ID。 要在ListView中表示的对象。此值不能为null。
尝试在Try-catch块中放置一些日志消息,您将看到该方法没有正确运行。

您的titulares为null。leerXml在哪里?还可以在UIThread中而不是在主线程中更新您的UI。编辑填充titularesEdit的带有leerXml的post函数编辑填充titular的带有leerXml的post函数esEdit post with leerXML函数,该函数填充了titulares您确定它都在这个方法中工作吗,您调试过吗?当适配器创建这两个字段中的哪一个为空时:1.titulares和2.ListadotitulasGood,我的意思是titulares=新字符串[titulos.size];这条线路我的解决方案是他无法访问internet,因此没有填充阵列。非常感谢您的帮助
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,titulares);
    listadoTitulos.setAdapter(adapter);
titulares = new String[your_lenght];
titularis = new String[2];