안녕하세요, 츄르 사려고 코딩하는 집사 코집사입니다.
이번엔 findViewById를 알아보려고 합니다.
이 내용을 쉽게 이해할 수 있게 앞에 포스팅한 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에서도 뷰를 만들수도 있다는 말이 됩니다.
안드로이드 스튜디오에서 이 방법은 첫 시작의 기본이기 때문에 숙지를 하게 된다면 큰 도움이 될 것입니다.
이상 츄르사려고 코딩하는 집사! 코집사였습니다.
'App > 안드로이드 스튜디오' 카테고리의 다른 글
[안드로이드 스튜디오(Android Studio)] Windows 10에 안드로이드 스튜디오(Android Studio) 설치하기 (0) | 2019.05.15 |
---|---|
안드로이드 스튜디오 - 패키지 이름 바꾸는 방법('com.example'이(가) 제한된 상태이므로 다른 패키지 이름을 사용해야 합니다.) (5) | 2019.01.31 |
안드로이드 스튜디오 리사이클러 뷰(Recycler View) 사용법(1) (0) | 2019.01.29 |
안드로이드 스튜디오(Android Studio) SQLite를 이용한 데이터베이스(DB) 만들기 (11) | 2019.01.22 |
안드로이드 스튜디오 앱(App) 내부에 있는 SQLite 데이터베이스 테이블 보는 방법 (1) | 2019.01.21 |
ndroid.database.sqlite.SQLiteException: table person has 3 columns but 4 values were supplied (code 1), (datatype mismatch (code 20)) 문제해결 (0) | 2019.01.18 |
안드로이드 스튜디오(Android Studio) Cursor와 데이터베이스(DB) (0) | 2019.01.17 |
안드로이드 스튜디오 setContentView() (1) | 2019.01.16 |
최근댓글