为了账号安全,请及时绑定邮箱和手机立即绑定

空对象引用上的 android.widget.ListView.setAdapter

空对象引用上的 android.widget.ListView.setAdapter

慕尼黑8549860 2023-10-13 10:19:16
错误发生在 setAdapter 行上。我找不到错误在哪里。它与空异常无关。有些事情不正常java.lang.RuntimeException:无法启动活动 ComponentInfo{com.example.myapplication/com.example.myapplication.Namelist}:java.lang.NullPointerException:尝试调用虚拟方法 'void android.widget.ListView.setAdapter(android. widget.ListAdapter)' 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913) 处的 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048) 处的空对象引用上 android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:78)位于主要类别:public class Namelist extends AppCompatActivity {String[] mobileArray = {"Android","IPhone","WindowsMobile","Blackberry",        "WebOS","Ubuntu","Windows7","Max OS X"};ListView l1;ArrayAdapter<String> arrayAdapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {    l1 = (ListView) findViewById(R.id.list);    arrayAdapter = new ArrayAdapter<String>(Namelist.this,R.layout.activity_namelist,mobileArray);   l1.setAdapter(arrayAdapter);    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_namelist);}}活动XML:<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".Namelist"><ListView    android:id="@+id/list"    android:layout_width="409dp"    android:layout_height="729dp"    app:layout_constraintBottom_toBottomOf="parent"    app:layout_constraintEnd_toEndOf="parent"    app:layout_constraintStart_toStartOf="parent"    app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout>提前致谢
查看完整描述

1 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

l1之前不能引用setContentView(R.layout.activity_namelist)


正确的代码在这里:


public class Namelist extends AppCompatActivity {


    String[] mobileArray = {"Android","IPhone","WindowsMobile","Blackberry","WebOS","Ubuntu","Windows7","Max OS X"};

    ListView l1;

    ArrayAdapter<String> arrayAdapter;


    @Override

    protected void onCreate(Bundle savedInstanceState) {


        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_namelist);


        l1 = findViewById(R.id.list);


        arrayAdapter = new ArrayAdapter<String>(Namelist.this,android.R.layout.simple_list_item_1,mobileArray);

       l1.setAdapter(arrayAdapter);

    }

}

并且您还将错误传递layout R.layout.activity_namelist给了 的第二个参数ArrayAdapter。您没有声明布局名称activity_namelist。因此,您可以使用默认的内置布局android.R.layout.simple_list_item_1询问上面的代码。


查看完整回答
反对 回复 2023-10-13
  • 1 回答
  • 0 关注
  • 85 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信