반응형

안녕하세요, 츄르 사려고 코딩하는 집사 코집사입니다.


이번엔 findViewById를 알아보려고 합니다.

이 내용을 쉽게 이해할 수 있게 앞에 포스팅한 setContentView()를 보고오면 좋습니다.


https://yongku.tistory.com/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-setContentView



main.xml 레이아웃에서 설정한 뷰들은 초기 설정만 정의를 해놔서 이벤트를 받거나 할 수 없습니다. 그래서, 이벤트를 받거나 뷰에 영향을 주려면 activity_main.java 자바 소스코드에서 수정을 해줘야 합니다.

그렇기 때문에 main.xml 레이웃에 설정된 뷰들을 가져오는 메소드가 findViewById입니다.


public class MainActivity extends Activity {

EditText nameEdit;
EditText memoEdit;
RadioGroup radioGroup1 =null;
TextView result;


위와 같이, EditText나 RadioGroup, TextView의 객체를 선언하였습니다.


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

nameEdit = (EditText)findViewById(R.id.nameedit);
memoEdit = (EditText)findViewById(R.id.memoedit);
result = (TextView)findViewById(R.id.result);
radioGroup1 = (RadioGroup)findViewById((R.id.radiogroup));

그렇게 하고, 위의 코드를 보면 findViewById 를 사용했는데, View의 id를 R 클래스에서 받아왔습니다.

이 findViewById를 이용을 하면, main.xml에서 적용을 시켰던 글자를 넣거나, 글자색을 변경하거나, 글자의 크기를 적용시키거나, 글자의 색상, 글꼴, 스타일 등을 변경할 수 있는 메소드를 지원을 하게 됩니다.


특히, 가장 중요한 이벤트 처리가 가능한 메소드도 지원을 하게 됩니다.


예를 들어서, main.xml에서 Design이 아닌 Text로 볼 때 글자를 입력할 경우에는 아래의 코드를 사용합니다.


android : text = "이름"


위의 코드처럼 사용을 하게 됩니다. 하지만, activity_main.java 파일에서는


setText를 사용하여 Java로 구성을 할 수 있게 됩니다.


main.xml에서 android:text = "츄르 사려고 코딩하는 집사" 를 적용을 시켰을 때,


activity_main.java에서 setText를 사용해서 "코집사"로 변경을 하게 되면, 화면에서는 "코집사"로 출력이 됩니다.


xml로도 레이아웃을 적용시킬 수 있고, java에서도 뷰를 만들수도 있다는 말이 됩니다.

안드로이드 스튜디오에서 이 방법은 첫 시작의 기본이기 때문에 숙지를 하게 된다면 큰 도움이 될 것입니다.


이상 츄르사려고 코딩하는 집사! 코집사였습니다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기