Этот проект связан с картой.Здесь, после входа в систему, он перенаправляется на карту активности.Я рассматриваю картографическую деятельность как основной вид деятельности здесь.Есть навигационный ящик, и для каждой опции (профиль, настройки, помощь ...) в нем я использую фрагменты.
После выбора опции профиля в окне навигации она переходит к фрагменту профиля.Теперь мне нужно вернуться к основному действию (карте), когда я нажимаю кнопку назад в действии бар фрагмента.
Активность картыне поддерживается в панели навигации.
Карта Activity.java
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
mSearchText = (AutoCompleteTextView) findViewById(R.id.input_search);
mGps = (ImageView) findViewById(R.id.ic_gps);
mInfo=(ImageView) findViewById(R.id.place_info);
btnFindPath = (Button) findViewById(R.id.btnFindPath);
mDrawerlayout= (DrawerLayout) findViewById(R.id.drawer);
mToggle= new ActionBarDrawerToggle(this,mDrawerlayout,R.string.open,R.string.close);
mDrawerlayout.addDrawerListener(mToggle);
mToggle.syncState();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
NavigationView nvDrawer = (NavigationView) findViewById(R.id.nv);
setupDrawerContent(nvDrawer);
getLocationPermission();
}
public void selectIterDrawer(MenuItem menuItem){
Fragment myFragment=null;
Class fragmentClass;
switch (menuItem.getItemId()){
case R.id.profile:
fragmentClass = Profile.class;
break;
case R.id.search:
fragmentClass = Search.class;
break;
case R.id.help:
fragmentClass = Help.class;
break;
case R.id.settings:
fragmentClass = Settings.class;
break;
case R.id.logout:
fragmentClass = Logout.class;
break;
default:
fragmentClass = Profile.class;
}
try {
myFragment = (Fragment) fragmentClass.newInstance();
}
catch (Exception e){
e.printStackTrace();
}
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.flcontent,myFragment).commit();
menuItem.setChecked(true);
setTitle(menuItem.getTitle());
mToggle.setDrawerIndicatorEnabled(false);
mDrawerlayout.closeDrawers();
}
private void setupDrawerContent(NavigationView navigationView){
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
selectIterDrawer(item);
return true;
}
});
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
if (mToggle.onOptionsItemSelected(item)){
return true;
}
return super.onOptionsItemSelected(item);
}
profile.java (фрагмент)
public static Profile newInstance(String param1, String param2) {
Profile fragment = new Profile();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_profile, container, false);
}
// TODO: Rename method, update argument and hook method into UI event
public void onButtonPressed(Uri uri) {
if (mListener != null) {
mListener.onFragmentInteraction(uri);
}
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
}
@Override
public void onDetach() {
super.onDetach();
mListener = null;
}
public interface OnFragmentInteractionListener {
// TODO: Update argument type and name
void onFragmentInteraction(Uri uri);
}
}