【发布时间】:2015-09-08 15:41:17
【问题描述】:
我想从 FragmentB 回到 FragmentA。谁能告诉我该怎么做?后退按钮只是关闭我的应用程序。我想返回到上一个片段。这是我的代码:
FragA
public class FragA extends Fragment {
final String[] items = new String[]{"F1", "F2", "F3"
};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.layout, container, false);
ListView list = (ListView) view.findViewById(R.id.fir);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, items);
list.setAdapter(adapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Fragment myFragment = null;
switch (arg2){
case 0:
myFragment = new FragA();
break;
case 1:
myFragment = new FragB();
break;
case 2:
myFragment = new FragC();
break;
}
// update the main content by replacing fragments
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.container2, myFragment)
.commit();
fragmentManager.popBackStackImmediate();
}
});
return view;
}
}
片段B
public class First_frag extends Fragment {
final String[] items = new String[]{"F1", "F2", "F3", "F4","F5"
};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.lay, container, false);
ListView list = (ListView) view.findViewById(R.id.fir);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, items);
list.setAdapter(adapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Fragment myFragment = null;
switch (arg2) {
case 0:
myFragment = new FragA();
break;
case 1:
myFragment = new FragB();
break;
case 2:
myFragment = new FragC();
break;
case 3:
myFragment = new FragD();
break;
case 4:
myFragment = new FragE();
break;
}
// update the main content by replacing fragments
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.container3, myFragment)
.commit();
}
});
return view;
}
}
提前感谢您的帮助。对于我在这里犯的任何可能的错误,我深表歉意。我是 Android 编程新手。
【问题讨论】:
-
您只需要将片段添加到后台堆栈。单击后退按钮将从堆栈中弹出这些并按照您提到的方式工作
-
那么我应该在哪里将 backstack 添加到代码中?
-
你在哪里将片段附加到活动类中的活动!
-
你可以在这里查看答案stackoverflow.com/questions/7992216/…
-
哦,我明白了,谢谢你的回复。它现在正在工作