전기차충전기
[안드로이드] 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:
반응형