Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.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 如何在mainActivity中将findViewById与片段一起使用?_Java_Android_Android Fragments_Findviewbyid - Fatal编程技术网

Java 如何在mainActivity中将findViewById与片段一起使用?

Java 如何在mainActivity中将findViewById与片段一起使用?,java,android,android-fragments,findviewbyid,Java,Android,Android Fragments,Findviewbyid,我看了一下关于这个问题的其他问题,我学到的是我的问题就在那里,因为我试图找到一个不在实际显示视图中的视图,我猜 但我不知道如何解决这个问题 这是我的MainActivity.java,其中错误显示为最终列表视图列表 公共类MainActivity扩展了AppCompatActivity{ 私有AppBarConfiguration mAppBarConfiguration; 私有上下文=这个; @凌驾 受保护的void onCreateBundle savedInstanceState{ sup

我看了一下关于这个问题的其他问题,我学到的是我的问题就在那里,因为我试图找到一个不在实际显示视图中的视图,我猜

但我不知道如何解决这个问题

这是我的MainActivity.java,其中错误显示为最终列表视图列表

公共类MainActivity扩展了AppCompatActivity{ 私有AppBarConfiguration mAppBarConfiguration; 私有上下文=这个; @凌驾 受保护的void onCreateBundle savedInstanceState{ super.onCreatesavedInstanceState; setContentViewR.layout.activity_main; //-------------------个人名单-------------- ArrayList aperoList=新ArrayList; 自然人; AperoAdapter adapter=新的AperoAdapter此,R.layout.apero_列表_布局,aperoList; 最终ListView列表=ListViewfindViewByIdR.id.list\u apero; list.setAdapteradapter; list.SetOnItemClickListener新建AdapterView.OnItemClickListener{ @凌驾 公共适配器视图适配器,视图v,内部位置,长id{ AperoVersion selectedItem=AperoVersion适配器.getItemAtPositionposition; Log.vCustomAdapterExample,所选的个人:+selectedItem.getName; } }; } 然后我把碎片带回家:

错误是:

java.lang.RuntimeException:无法启动活动 ComponentInfo{com.example.lapero/com.example.lapero.MainActivity}: java.lang.NullPointerException:尝试调用虚拟方法“void” 上的“android.widget.ListView.setAdapterandroid.widget.ListAdapter” 空对象引用

列表在fragment\u home中,不在activity\u main中

活动中的findViewByIdR.id.list\u apero返回null


您应该在片段中设置适配器,而不是在活动中。

Activity无权触摸片段视图,但显示的视图将不是正确的视图否?在哪里使用了片段的主布局?它不是片段的布局吗?在活动中加载片段,然后在片段上设置适配器,因为您可以访问所有内容它在onCreateView.ahhh中的布局好的,是的,我知道我必须在片段上更改它,而不是在MainActivity上。没错,在同一个Android Studio中,有一个带有片段的活动示例将转到New/activity/fragment+ViewModel。此活动将加载该片段,并使用supportFragmentManager和如果保存充气结果以便稍后返回,则片段可以访问onCreateView中的视图。您可以在其中使用findViewById并执行操作和/或保存对象引用。