From 171e2248ced4f44b729aca9ff7f02a07b4d0ce9d Mon Sep 17 00:00:00 2001 From: Xcreen Date: Thu, 27 Sep 2018 10:56:28 +0200 Subject: [PATCH] Added Home/Settings/About Fragment and adjust navigation --- .../net/xcreen/restsms/AboutFragment.java | 21 +++++++++ .../java/net/xcreen/restsms/HomeFragment.java | 21 +++++++++ .../java/net/xcreen/restsms/MainActivity.java | 47 ++++++++++++------- .../net/xcreen/restsms/SettingsFragment.java | 21 +++++++++ app/src/main/res/layout/activity_main.xml | 3 +- app/src/main/res/layout/fragment_about.xml | 13 +++++ app/src/main/res/layout/fragment_home.xml | 13 +++++ app/src/main/res/layout/fragment_settings.xml | 13 +++++ app/src/main/res/values/dimens.xml | 3 +- 9 files changed, 135 insertions(+), 20 deletions(-) create mode 100644 app/src/main/java/net/xcreen/restsms/AboutFragment.java create mode 100644 app/src/main/java/net/xcreen/restsms/HomeFragment.java create mode 100644 app/src/main/java/net/xcreen/restsms/SettingsFragment.java create mode 100644 app/src/main/res/layout/fragment_about.xml create mode 100644 app/src/main/res/layout/fragment_home.xml create mode 100644 app/src/main/res/layout/fragment_settings.xml diff --git a/app/src/main/java/net/xcreen/restsms/AboutFragment.java b/app/src/main/java/net/xcreen/restsms/AboutFragment.java new file mode 100644 index 0000000..8666024 --- /dev/null +++ b/app/src/main/java/net/xcreen/restsms/AboutFragment.java @@ -0,0 +1,21 @@ +package net.xcreen.restsms; + +import androidx.fragment.app.Fragment; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +public class AboutFragment extends Fragment { + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_about, container, false); + } +} diff --git a/app/src/main/java/net/xcreen/restsms/HomeFragment.java b/app/src/main/java/net/xcreen/restsms/HomeFragment.java new file mode 100644 index 0000000..1f9a7dd --- /dev/null +++ b/app/src/main/java/net/xcreen/restsms/HomeFragment.java @@ -0,0 +1,21 @@ +package net.xcreen.restsms; + +import androidx.fragment.app.Fragment; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +public class HomeFragment extends Fragment { + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_home, container, false); + } +} diff --git a/app/src/main/java/net/xcreen/restsms/MainActivity.java b/app/src/main/java/net/xcreen/restsms/MainActivity.java index 04b8991..ba030cc 100644 --- a/app/src/main/java/net/xcreen/restsms/MainActivity.java +++ b/app/src/main/java/net/xcreen/restsms/MainActivity.java @@ -7,6 +7,9 @@ import androidx.drawerlayout.widget.DrawerLayout; import androidx.appcompat.app.ActionBarDrawerToggle; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentTransaction; + import android.view.MenuItem; public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { @@ -31,6 +34,15 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On navigationView = findViewById(R.id.nav_view); navigationView.setNavigationItemSelectedListener(this); + + //Set Home Fragment + FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); + try { + Fragment homeFragment = HomeFragment.class.newInstance(); + fragmentTransaction.replace(R.id.main_framelayout, homeFragment).commit(); + } catch (Exception ex) { + ex.printStackTrace(); + } } @Override @@ -45,24 +57,25 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On @SuppressWarnings("StatementWithEmptyBody") @Override public boolean onNavigationItemSelected(MenuItem item) { - // Handle navigation view item clicks here. - int id = item.getItemId(); - - /* - if (id == R.id.nav_camera) { - // Handle the camera action - } else if (id == R.id.nav_gallery) { - - } else if (id == R.id.nav_slideshow) { - - } else if (id == R.id.nav_manage) { - - } else if (id == R.id.nav_share) { - - } else if (id == R.id.nav_send) { + //Set new Fragment + Fragment fragment; + switch(item.getItemId()){ + case R.id.nav_home: + fragment = new HomeFragment(); + break; + case R.id.nav_settings: + fragment = new SettingsFragment(); + break; + case R.id.nav_about: + fragment = new AboutFragment(); + break; + default: + fragment = new HomeFragment(); + break; } - */ - + //Replace Fragment + FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); + fragmentTransaction.replace(R.id.main_framelayout, fragment).addToBackStack("fragBack").commit(); drawerLayout.closeDrawer(GravityCompat.START); return true; } diff --git a/app/src/main/java/net/xcreen/restsms/SettingsFragment.java b/app/src/main/java/net/xcreen/restsms/SettingsFragment.java new file mode 100644 index 0000000..0d038f1 --- /dev/null +++ b/app/src/main/java/net/xcreen/restsms/SettingsFragment.java @@ -0,0 +1,21 @@ +package net.xcreen.restsms; + +import androidx.fragment.app.Fragment; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +public class SettingsFragment extends Fragment { + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_settings, container, false); + } +} diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index dbadc26..4807e13 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -38,7 +38,8 @@ + android:layout_height="match_parent" + android:padding="@dimen/fragment_padding"/> diff --git a/app/src/main/res/layout/fragment_about.xml b/app/src/main/res/layout/fragment_about.xml new file mode 100644 index 0000000..27102ed --- /dev/null +++ b/app/src/main/res/layout/fragment_about.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml new file mode 100644 index 0000000..2f0a076 --- /dev/null +++ b/app/src/main/res/layout/fragment_home.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml new file mode 100644 index 0000000..100875a --- /dev/null +++ b/app/src/main/res/layout/fragment_settings.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 4ab4520..169d40c 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -1,8 +1,7 @@ - 16dp 16dp 8dp 176dp - 16dp + 20dp \ No newline at end of file