프래그먼트 추가

This commit is contained in:
DESKTOP-1A3P75F\lee
2022-08-18 05:26:09 +09:00
parent 3f8440b2db
commit 9cb31437e3
20 changed files with 491 additions and 1 deletions

17
.idea/deploymentTargetDropDown.xml generated Normal file
View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetDropDown">
<runningDeviceTargetSelectedWithDropDown>
<Target>
<type value="RUNNING_DEVICE_TARGET" />
<deviceKey>
<Key>
<type value="SERIAL_NUMBER" />
<value value="d" />
</Key>
</deviceKey>
</Target>
</runningDeviceTargetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2022-08-17T19:22:50.025295100Z" />
</component>
</project>

6
.idea/misc.xml generated
View File

@@ -15,6 +15,12 @@
<entry key="..\:/QTagger/QTagger4/app/src/main/res/layout/activity_account_list.xml" value="0.5536458333333333" />
<entry key="..\:/QTagger/QTagger4/app/src/main/res/layout/activity_account_modify.xml" value="0.5390625" />
<entry key="..\:/QTagger/QTagger4/app/src/main/res/layout/activity_test.xml" value="0.4082792207792208" />
<entry key="..\:/QTagger/QTagger_Android2/app/src/main/res/layout/activity_navigation.xml" value="0.2984375" />
<entry key="..\:/QTagger/QTagger_Android2/app/src/main/res/layout/fragment_search.xml" value="0.31302083333333336" />
<entry key="..\:/QTagger/QTagger_Android2/app/src/main/res/layout/fragment_select.xml" value="0.31302083333333336" />
<entry key="..\:/QTagger/QTagger_Android2/app/src/main/res/layout/fragment_setting.xml" value="0.31302083333333336" />
<entry key="..\:/QTagger/QTagger_Android2/app/src/main/res/layout/fragment_test.xml" value="0.31302083333333336" />
<entry key="..\:/QTagger/QTagger_Android2/app/src/main/res/menu/bottom_nav_menu.xml" value="0.25598290598290596" />
</map>
</option>
</component>

View File

@@ -21,6 +21,11 @@ android {
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
buildFeatures{
viewBinding true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8

View File

@@ -31,6 +31,9 @@
android:supportsRtl="true"
android:theme="@style/Theme.QTagger"
tools:targetApi="31">
<activity
android:name=".Activity.NavigationActivity"
android:exported="false" />
<activity
android:name=".Activity.AccountModify"
android:exported="false" />

View File

@@ -0,0 +1,66 @@
package com.qtagger.Activity.NaviFragment;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.qtagger.R;
/**
* A simple {@link Fragment} subclass.
* Use the {@link SearchFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class SearchFragment extends Fragment {
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";
// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;
public SearchFragment() {
// Required empty public constructor
}
/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @param param1 Parameter 1.
* @param param2 Parameter 2.
* @return A new instance of fragment SearchFragment.
*/
// TODO: Rename and change types and number of parameters
public static SearchFragment newInstance(String param1, String param2) {
SearchFragment fragment = new SearchFragment();
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_search, container, false);
}
}

View File

@@ -0,0 +1,66 @@
package com.qtagger.Activity.NaviFragment;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.qtagger.R;
/**
* A simple {@link Fragment} subclass.
* Use the {@link SelectFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class SelectFragment extends Fragment {
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";
// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;
public SelectFragment() {
// Required empty public constructor
}
/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @param param1 Parameter 1.
* @param param2 Parameter 2.
* @return A new instance of fragment SelectFragment.
*/
// TODO: Rename and change types and number of parameters
public static SelectFragment newInstance(String param1, String param2) {
SelectFragment fragment = new SelectFragment();
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_select, container, false);
}
}

View File

@@ -0,0 +1,66 @@
package com.qtagger.Activity.NaviFragment;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.qtagger.R;
/**
* A simple {@link Fragment} subclass.
* Use the {@link SettingFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class SettingFragment extends Fragment {
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";
// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;
public SettingFragment() {
// Required empty public constructor
}
/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @param param1 Parameter 1.
* @param param2 Parameter 2.
* @return A new instance of fragment SettingFragment.
*/
// TODO: Rename and change types and number of parameters
public static SettingFragment newInstance(String param1, String param2) {
SettingFragment fragment = new SettingFragment();
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_setting, container, false);
}
}

View File

@@ -0,0 +1,66 @@
package com.qtagger.Activity.NaviFragment;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.qtagger.R;
/**
* A simple {@link Fragment} subclass.
* Use the {@link TestFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class TestFragment extends Fragment {
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";
// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;
public TestFragment() {
// Required empty public constructor
}
/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @param param1 Parameter 1.
* @param param2 Parameter 2.
* @return A new instance of fragment TestFragment.
*/
// TODO: Rename and change types and number of parameters
public static TestFragment newInstance(String param1, String param2) {
TestFragment fragment = new TestFragment();
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_test, container, false);
}
}

View File

@@ -0,0 +1,86 @@
package com.qtagger.Activity;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MenuItem;
import android.widget.Toast;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.google.android.material.internal.NavigationMenu;
import com.qtagger.Activity.NaviFragment.SearchFragment;
import com.qtagger.Activity.NaviFragment.SettingFragment;
import com.qtagger.Activity.NaviFragment.TestFragment;
import com.qtagger.R;
import com.qtagger.databinding.ActivityMainBinding;
import com.qtagger.util.DataManager;
public class NavigationActivity extends AppCompatActivity {
private final long finishtimeed = 1000;
private long presstime = 0;
private FragmentManager fragmentManager = getSupportFragmentManager();
private TestFragment testFragment = new TestFragment();
private SearchFragment searchFragment = new SearchFragment();
private SettingFragment settingFragment = new SettingFragment();
private DataManager dataManager = DataManager.getInstance();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_navigation);
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.replace(R.id.frame, testFragment).commitAllowingStateLoss();
BottomNavigationView bottomNavigationView = findViewById(R.id.nav_view);
bottomNavigationView.setOnNavigationItemSelectedListener(new ItemSelectedListener());
}
class ItemSelectedListener implements BottomNavigationView.OnNavigationItemSelectedListener {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
FragmentTransaction transaction = fragmentManager.beginTransaction();
switch (menuItem.getItemId()) {
case R.id.navigation_test:
transaction.replace(R.id.frame, testFragment).commitAllowingStateLoss();
break;
case R.id.navigation_search:
transaction.replace(R.id.frame, searchFragment).commitAllowingStateLoss();
break;
case R.id.navigation_setting:
transaction.replace(R.id.frame, settingFragment).commitAllowingStateLoss();
break;
}
return true;
}
}
@Override
public void onBackPressed() {
long tempTime = System.currentTimeMillis();
long intervalTime = tempTime - presstime;
if (0 <= intervalTime && finishtimeed >= intervalTime)
{
moveTaskToBack(true);
finish();
android.os.Process.killProcess(android.os.Process.myPid());
}
else
{
presstime = tempTime;
Toast.makeText(getApplicationContext(), "한번더 누르시면 앱이 종료됩니다", Toast.LENGTH_SHORT).show();
}
}
}

View File

@@ -18,6 +18,7 @@ import android.widget.Toast;
import com.qtagger.Activity.AccountAdd;
import com.qtagger.Activity.AccountList;
import com.qtagger.Activity.NavigationActivity;
import com.qtagger.Database.Account;
import com.qtagger.Database.AppDatabase;
import com.qtagger.util.DataManager;
@@ -59,7 +60,8 @@ public class MainActivity extends AppCompatActivity {
if(selectAcc != null)//로그인 처리
{
dataManager.loginAccount = selectAcc;
Intent intent2 = new Intent(getApplicationContext(), NavigationActivity.class);
startActivity(intent2);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Activity.NavigationActivity">
<FrameLayout
android:id="@+id/frame"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="@id/nav_view"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
>
</FrameLayout>
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/nav_view"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:menu="@menu/bottom_nav_menu" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Activity.NaviFragment.SearchFragment">
<!-- TODO: Update blank fragment layout -->
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="search" />
</FrameLayout>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Activity.NaviFragment.SelectFragment">
<!-- TODO: Update blank fragment layout -->
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/hello_blank_fragment" />
</FrameLayout>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Activity.NaviFragment.SettingFragment">
<!-- TODO: Update blank fragment layout -->
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Setting" />
</FrameLayout>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Activity.NaviFragment.TestFragment">
<!-- TODO: Update blank fragment layout -->
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="test" />
</FrameLayout>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/navigation_test"
android:icon="@drawable/document_checklist_icon_icons_com_32"
android:title="검사" />
<item
android:id="@+id/navigation_search"
android:icon="@drawable/searchmagnifierinterfacesymbol1_32"
android:title="조회" />
<item
android:id="@+id/navigation_setting"
android:icon="@drawable/more_button_of_three_dots_icon_icons_com_74259___"
android:title="더보기" />
</menu>

View File

@@ -1,3 +1,5 @@
<resources>
<string name="app_name">QTagger</string>
<!-- TODO: Remove or change this placeholder text -->
<string name="hello_blank_fragment">Hello blank fragment</string>
</resources>