강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

권민경님의 프로필 이미지
권민경

작성한 질문수

activityMainBinding을 사용하는 이유는 무엇인지요?

작성

·

50

0

기존에 있는 setContentView(R.layout.activity_main);이것을 그대로 사용해도 되는데 굳이

buildFeatures{

viewBinding = true

}

글 세팅하고 activityMainBinding을 사용하는 이유는 무엇인지요?

질문을 올리면 해결좀 부탁드립니다. 너무 답이 없으십니다.

 

public class MainActivity extends AppCompatActivity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

String[] items = { "CSI-뉴욕", "CSI-라스베가스", "CSI-마이애미", "Friends",

"Fringe", "Lost" };

AutoCompleteTextView auto = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1);

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,

android.R.layout.simple_dropdown_item_1line, items);

auto.setAdapter(adapter);

MultiAutoCompleteTextView multi = (MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextView1);

CommaTokenizer token = new MultiAutoCompleteTextView.CommaTokenizer();

multi.setTokenizer(token);

multi.setAdapter(adapter);

}

}

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

질문하신 activityMainBinding을 사용하는 이유는 안드로이드 앱 개발에서 뷰 바인딩 기능을 활용하기 위함입니다. 뷰 바인딩은 코드에서 UI 뷰를 보다 쉽게 조작할 수 있도록 도와주는 안드로이드 Jetpack 기능 중 하나입니다. setContentView(R.layout.activity_main);를 사용하는 대신 activityMainBinding을 사용하면 다음과 같은 이점이 있습니다:

  1. 널 안정성(null safety): 뷰 바인딩을 사용하면 널 포인터 예외를 방지할 수 있습니다. 각 XML 레이아웃 파일에 대해 바인딩 클래스가 생성되므로 뷰를 직접 참조할 때 널 검사를 할 필요가 없어집니다.
  2. 타입 안정성(type safety): 뷰 바인딩은 레이아웃의 뷰를 정확한 타입으로 참조할 수 있도록 해줍니다. 이는 클래스 캐스팅 오류를 방지해주어 개발 중 발생할 수 있는 오류를 줄여줍니다.
  3. 코드 간소화: 뷰 바인딩을 사용하면 뷰를 조작하기 위한 코드를 줄일 수 있습니다. findViewById를 사용하지 않아도 되므로 코드가 더 간결해지고, 가독성이 향상됩니다.

buildFeaturesviewBinding = true 설정을 통해 뷰 바인딩 기능을 활성화시키면, 액티비티나 프래그먼트에서 XML 레이아웃에 접근하는 방식이 보다 안전하고 효율적으로 변화합니다. 따라서, setContentView를 사용하는 것보다 activityMainBinding 같은 바인딩 객체를 사용하는 것이 추천되는 코딩 패턴 중 하나입니다.

권민경님의 프로필 이미지
권민경

작성한 질문수

질문하기