Louie NRT Story

[안드로이드] View Binding 본문

전기차충전기

[안드로이드] View Binding

hyeok0724.kim@gmail.com 2021. 12. 9. 18:03
반응형

작성일: 21년 12월 9일

 

Index

1. 기존의 코드

2. ViewBinding 기능 사용하기

3. 자동 생성된 ViewBinding 코드

 

 

1. 기존의 코드

 1) MainActivity

public class MainActivity extends AppCompatActivity {

    private static final String LOG_TAG = MainActivity.class.getSimpleName();
    private TextView nameView, phoneView, addressView;

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

        //뷰 바인딩 이라고 함
        nameView = findViewById(R.id.name);
        phoneView = findViewById(R.id.phone);
        addressView = findViewById(R.id.address);

        fetchUserProfile();
    }

    private void fetchUserProfile() {
        UserProfile userProfile = new UserProfile();
        userProfile.name = "홍길동";
        userProfile.phone = "01012345678";
        userProfile.address = "서울시 서초구";

        updateUI(userProfile);
    }

    //데이터 바인딩 이라고 함
    private void updateUI(UserProfile userProfile) {
        nameView.setText(userProfile.name);
        phoneView.setText(userProfile.phone);
        addressView.setText(userProfile.address);
    }
}

 

 2) UserProfile 코드

public class UserProfile {
    public String name;
    public String phone;
    public String address;

    public UserProfile(){
        this.name = name;
        this.phone = phone;
        this.address = address;
    }
}

 

 3) 결과물

  - TextView를 통하여 설정한 Text가 표시됨

 

 

2. ViewBinding 기능 사용하기

 1) build.gradle 추가

  - viewBinding{ enabled true }

 

 2) MainActivity

  - 뷰 바인딩 하는 부분들을 모두 대신해줌

  - ActivityMainBinding 이라는 것은 Layout의 main_activity.xml 파일을 가르킴

  - setContentView에는 위에서 생성한 binding의 RootView를 전달함으로서 해결됨

public class MainActivity extends AppCompatActivity {

    private static final String LOG_TAG = MainActivity.class.getSimpleName();
    private ActivityMainBinding binding;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        binding = ActivityMainBinding.inflate(getLayoutInflater());
        setContentView(binding.getRoot());

        fetchUserProfile();
    }

    private void fetchUserProfile() {
        UserProfile userProfile = new UserProfile();
        userProfile.name = "홍길동";
        userProfile.phone = "01012345678";
        userProfile.address = "서울시 서초구";

        updateUI(userProfile);
    }

    private void updateUI(UserProfile userProfile) {
        binding.name.setText(userProfile.name);
        binding.phone.setText(userProfile.phone);
        binding.address.setText(userProfile.address);
    }
}

 

 3) 결과 확인하기

  - 위와 같은 결과를 나타냄

 

 

3. 자동 생성된 ViewBinding 코드

 - 안드로이드에서 자동으로 Binding 할 수 있도록 코드를 자동 생성해줌을 알 수 있음

 

Referece:

https://youtu.be/LH9__2Tt4js

 

반응형
Comments