Tôi gặp sự cố khi thêm giao dịch phân đoạn vào ngăn xếp phía sau. Tôi có một hoạt động chính trong đó tôi cư bố trí của tôi với một Menu Fragment:Nhấn lùi không quay về đoạn trước
public class MainActivity extends ActionBarActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getFragmentManager().beginTransaction().add(R.id.frag_container, new MainMenuFragment()).commit();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Sau đó, bên trong MainMenuFragment, người dùng chọn một số tùy chọn mà kết quả trong việc thay thế đoạn menu với một số đoạn khác :
public class MainMenuFragment extends Fragment implements OnItemClickListener{
GridView grid;
FragmentManager manager;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.main_menu_fragment, container, false);
manager = getActivity().getFragmentManager();
grid = (GridView) root.findViewById(R.id.gridView1);
grid.setAdapter(new MenuTileAdapter(getActivity()));
grid.setOnItemClickListener(this);
return root;
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
FragmentTransaction trans = manager.beginTransaction();
if (position == 0){
trans.replace(R.id.frag_container, new BasicSettingsFragment());
trans.addToBackStack(null);
trans.commit();
}
}
}
Đối với những gì tôi hiểu, điều này sẽ làm cho nó để khi người dùng nhấn lại nút trên thiết bị của họ, họ sẽ có b rought trở lại mảnh menu, nhưng thay vì điều này thoát khỏi ứng dụng. Tôi đang làm gì sai?
thử thêm thay vì thay thế trans.add (R.id.frag_container, BasicSettingsFragment mới()); –
Ngoài ra, tôi chỉ nhận thấy khi xoay màn hình, rằng các mảnh trình đơn đã không nhận được loại bỏ ở tất cả, chỉ cần ẩn. Khi tôi xoay điện thoại, nó xuất hiện trên 'BasicSettingsFragment'. @GeorgianBenetatos chỉ thêm phần mới vào đầu trang trước đó. – jammaster
Bạn nên đăng đầy đủ mã MainMenuFragment, mọi thứ đều ổn. –