Android 即使我没有';我没叫它
当我点击一个按钮时,我试图显示另一个片段,根据我发现的信息,我必须这样做:Android 即使我没有';我没叫它,android,android-layout,android-fragments,Android,Android Layout,Android Fragments,当我点击一个按钮时,我试图显示另一个片段,根据我发现的信息,我必须这样做: HomeFragment.java: 公共类HomeFragment扩展了片段{ 私有HomeViewModel HomeViewModel; 私有视图根; 创建视图时的公共视图(@NonNull final layoutiner充气机, 最终视图组容器,Bundle savedInstanceState){ homeViewModel= ViewModelProviders.of(this.get)(HomeViewM
HomeFragment.java
:
公共类HomeFragment扩展了片段{
私有HomeViewModel HomeViewModel;
私有视图根;
创建视图时的公共视图(@NonNull final layoutiner充气机,
最终视图组容器,Bundle savedInstanceState){
homeViewModel=
ViewModelProviders.of(this.get)(HomeViewModel.class);
根=充气机。充气(R.layout.fragment\u home,container,false);
final TextView TextView=root.findviewbyd(R.id.text\u home);
homeViewModel.getText().observe(getViewLifecycleOwner(),new Observer()){
@凌驾
公共void onChanged(@Nullable String s){
textView.setText;
}
});
//-------------------------------------传入事件-------------------
ArrayList incomingApero=新的ArrayList();
初始列表(incomingApero);
AperoIncomingAdapter AdapterInComingAppro=新的AperoIncomingAdapter(this.getContext(),R.layout.apero\u cell\u layout,incomingApero);
最终ListView listIncomingApero=(ListView)root.findViewById(R.id.list\u apero);
列表输入文件设置适配器(适配器输入文件);
listIncomingApero.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
公共控件单击(适配器视图适配器,视图v,内部位置,长id){
AperoVersion selectedItem=(AperoVersion)适配器。getItemAtPosition(位置);
Log.v(“Root now”,“Root:+Root”);
//root=充气机。充气(R.layout.apero\u list\u布局,容器,假);
final FragmentTransaction ft=getFragmentManager().beginTransaction();
ft.replace(R.id.list_apero,new AperoDetailFragment(),“DisplayDetailsOfClickedPero”);
ft.commit();
Log.v(“CustomAdapterExample”,“Selected元素:”+selectedItem.getName());
Log.v(“Root now”,“Root:+Root”);
}
});
返回根;
}
因此,我在点击事件中没有看到任何addView
,然后我有AperoDetailFragment.java
:
public类AperoDetailFragment扩展了Fragment{
私有视图根;
创建视图时的公共视图(@NonNull final layoutiner充气机,
最终视图组容器,Bundle savedInstanceState){
根=充气机。充气(R.布局.碎片\详细信息\纸,容器,假);
//-------------------------------------传入事件-------------------
ArrayList aperoList=新的ArrayList();
初始列表(开胃石);
//aperodapter adapter=newaperodapter(this.getContext(),R.layout.apero\u list\u layout,aperoList);
//最终ListView列表=(ListView)root.findViewById(R.id.list\u apero);
//list.setAdapter(适配器);
返回根;
}
私有void initList(ArrayList androidList){
...
}
}
那么,我应该在哪里修改代码以显示我的AperoDetailFragment?或者我应该只使用activity?对于我来说,我看不到activity的用法,因为我想要的不是传入事件的列表,而是包含单击事件的详细信息的列表。如果有帮助,我可以提供有关布局/片段的更多信息
在fragment\u apero\u detail.xml中,我是这样开始的:
...
堆栈跟踪错误:
2020-03-02 21:23:41.401 6781-6781/com.example.lapero E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.lapero, PID: 6781
java.lang.UnsupportedOperationException: addView(View) is not supported in AdapterView
at android.widget.AdapterView.addView(AdapterView.java:489)
at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:326)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1187)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1356)
at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1434)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1497)
at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:447)
at androidx.fragment.app.FragmentManager.executeOps(FragmentManager.java:2169)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1992)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1947)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1849)
at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:413)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
@RyanMentley我得到了您可以在我的编辑中看到的错误,预期的行为是在HomeFragment
中触发onclick时显示AperoDetailFragment