Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.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 单击ListItem后,如何更改片段布局?_Java_Android_Android Layout_Listview_Android Fragments - Fatal编程技术网

Java 单击ListItem后,如何更改片段布局?

Java 单击ListItem后,如何更改片段布局?,java,android,android-layout,listview,android-fragments,Java,Android,Android Layout,Listview,Android Fragments,因此,一旦从列表视图中选择了列表项,我将尝试更改我的片段布局。不过,我不太确定我该怎么做。这是我使用的代码的基础 @Override public View onCreateView(final LayoutInflater inflater,final ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_list_d, containe

因此,一旦从
列表视图
中选择了
列表项
,我将尝试更改我的
片段
布局。不过,我不太确定我该怎么做。这是我使用的代码的基础

@Override
public View onCreateView(final LayoutInflater inflater,final ViewGroup container, Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.fragment_list_d, container, false);

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {

            // Getting list item index
            int listIndex = position;

            ((IndexListener) getActivity()).onIndexSelected(listIndex);

        }
    });


    return rootView;

}
@覆盖
创建视图上的公共视图(最终布局充气机、最终视图组容器、捆绑包保存状态){
视图根视图=充气机。充气(R.layout.fragment\u list\u d,容器,false);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
//获取列表项索引
int listIndex=位置;
((IndexListener)getActivity()).onIndexSelected(listIndex);
}
});
返回rootView;
}
我故意删除了代码的部分,以使其尽可能与问题相关

摘要


那么,我如何修改
rootView
以返回不同于
R.layout.fragment\u list\u d
的布局格式,一旦单击了
ListItem

如果不想进行片段替换,唯一的选择就是获取父级,删除以前的内容并添加新内容

首先将rootView存储在类字段中,以便在经过onCreateView后可以获取其引用,然后执行以下操作:

ViewGroup parentView =rootView.getParent();
parentView.removeView(rootView);
View newRootView = inflater.inflate(R.layout.newlayout, parentView, false);
parentView.addView(newRootView);
像这样的应该可以工作(没有测试,只是从我的头脑中写出来)


希望这有帮助。

您必须对另一个版面进行充气,有什么问题吗?我不知道单击
列表项后如何对另一个版面进行充气。我还需要使用rootView吗?我想我理解您的意思,您正在寻找setContentView,但在fragment中。。。你有这个解决方案(我不喜欢它,如果你不太喜欢的话告诉我)是的,我尽量不把XML弄得一团糟。是的,我正在尝试在
onItemClick
函数中设置一个新的内容视图。您可以清除rootView,然后充气,然后添加视图,但您必须共享根布局,明白吗?