반응형

먼저 그래들에 추가 해야 할 것이 이싿.

implementation 'com.google.android.material:material:1.0.0'

 

drawble오른쪽 클릭 -> new -> vercterAsset -> ClipArt 를 클릭하면 기본으로 제공되는 아이콘 사용이 가능하다.
메뉴타입의 resource 집 하나 만들어주고, 안에 resource file하나 만들어준다.

 

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:id="@+id/action_home"
        android:enabled="true"
        android:icon="@drawable/ic_baseline_home_24"
        android:title="홈"/>

    <item
        android:id="@+id/action_chat"
        android:enabled="true"
        android:icon="@drawable/ic_baseline_chat_24"
        android:title="채팅"/>

    <item
        android:id="@+id/action_createNew"
        android:enabled="true"
        android:icon="@drawable/ic_baseline_create_new_folder_24"
        android:title="만들기"/>

    <item
        android:id="@+id/action_setting"
        android:enabled="true"
        android:icon="@drawable/ic_baseline_settings_24"
        android:title="설정"/>

</menu>

 

enabled : 버튼활성화

bottomNavigation과 frameLayout을 만들고
fragment.xml까지 만들어줌

 

당연히 클래스를 만들어서 넣어주고

package grocery.gohool.bottomnavi;

import android.os.Bundle;
import android.view.MenuItem;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;

import com.google.android.material.bottomnavigation.BottomNavigationView;

public class MainActivity extends AppCompatActivity {
    private BottomNavigationView bottomNavigationMenu;
    private FragmentManager fm;
    private FragmentTransaction ft;
    private Fragment1 frag1;
    private Fragment2 frag2;
    private Fragment3 frag3;
    private Fragment4 frag4;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        bottomNavigationMenu =  (BottomNavigationView) findViewById(R.id.bottomMenu);
        bottomNavigationMenu.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {

                switch (item.getItemId()){
                    case R.id.action_home:
                        setFrag(0);
                        break;
                    case R.id.action_chat:
                        setFrag(1);
                        break;
                    case R.id.action_createNew:
                        setFrag(2);
                        break;
                    case R.id.action_setting:
                        setFrag(3);
                        break;
                }

                return true;
            }
        });
        frag1 = new Fragment1();
        frag2 = new Fragment2();
        frag3 = new Fragment3();
        frag4 = new Fragment4();

        setFrag(0); // 첫 화면;
    }


//프레그먼트 교체가 일어나는 실행문이다.
    private void setFrag(int n){
        fm = getSupportFragmentManager();
        ft = fm.beginTransaction();
        switch (n){
            case 0:
                ft.replace(R.id.frame, frag1);
                ft.commit();
                break;
            case 1:
                ft.replace(R.id.frame, frag2);
                ft.commit();
                break;
            case 2:
                ft.replace(R.id.frame, frag3);
                ft.commit();
                break;
            case 3:
                ft.replace(R.id.frame, frag4);
                ft.commit();
                break;
        }

    }





}

 

 

Java에서 초기화 뜻은?

- 선언한 객체에 최초로 값을 넣어주는 것

 

자바에서 초기화 하는 이유는?

- 클래스 영역에서 선언할 경우에는

컴파일러가 자동으로 값 할당을 해주나

메소드 영역에서 선언할 경우에는

자동으로 값이 할당되지 않기 때문에

에러가 발생해서 그렇다

 

반응형

'개발언어 > JAVA' 카테고리의 다른 글

데이터베이스 MySQL  (0) 2020.12.28
안드로이드 로그인 + 회원가입 만들기  (0) 2020.12.27
안드로이드 슬라이드메뉴 + fragment  (0) 2020.12.26
안드로이드 Fragment  (0) 2020.12.25
안드로이드 생명주기  (0) 2020.12.25

+ Recent posts