이벤트 내용
- Count 버튼을 누르면 수를 카운트 하고
- 카운트 한 만큼 화면에 띄우기
- Reset 버튼을 누르면 카운트 값 리셋하기
MainActivity.java
package com.example.cute_tutorial;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private int count = 0;
private TextView countText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
countText = (TextView) findViewById(R.id.count_text);
countText.setText("0");
}
public void buttonCount(View view) {
count++;
if (countText != null) {
countText.setText(Integer.toString(count));
}
}
public void buttonReset(View view) {
count = 0;
if (countText != null) {
countText.setText(Integer.toString(count));
}
}
}
private int count = 0;
private TextView countText;
Android 개발에서 TextView는 사용자 인터페이스(UI)를 구성하는 데 사용되는 위젯(Widget) 중 하나
- 주요 기능: 텍스트를 화면에 표시 (정적/동적)
- 레이아웃 파일(XML) 또는 Java 코드에서 사용됨
(1) XML에서 TextView 위젯 추가
<TextView
android:id="@+id/myTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, World!"
android:textSize="18sp"
android:textColor="#000000"
android:gravity="center"
android:layout_gravity="center"/>
(2) Java 코드에서 TextView를 조작하려면, findViewById() 메서드를 사용하여 xml에 정의된 TextView의 id값을 참조하는 방식으로 해당 TextView 객체를 가져오면 됨
- 객체를 가져오기만 하면, 나머지 이벤트는 기본 프로그래밍 방식으로 처리.
countText = (TextView) findViewById(R.id.count_text);
countText.setText("0");
- 안드로이드 앱 내 xml 파일에서 'count_text'라는 Id를 가진 TextView를 찾고
- 해당 TextView에 "0"이라는 텍스트를 보이게 하는 코드
findViewById(R.id.count_text)에서의 R은 안드로이드 앱의 리소스(Resources)를 나타내는 클래스
R 클래스는 앱이 컴파일될 때 자동으로 생성되며, 리소스의 유형과 이름에 따라 여러 하위 클래스를 가짐
- R.layout는 레이아웃 리소스에 대한 상수를 포함하는 클래스
- R.id는 레이아웃 내의 뷰에 할당된 고유한 ID를 관리
public void buttonCount(View view) {
count++;
if (countText != null) {
countText.setText(Integer.toString(count));
}
}
아까 id 로 객체 지정한 countText를 바꾸어주는 함수 설정
해당 함수는 xml 파일에서 정의된 위젯들 중에, buttonCount라는 이벤트와 연결되어 있는 버튼이 눌렸을 때 동작함
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="137dp"
android:layout_marginTop="246dp"
android:text="Hello World!" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="62dp"
android:layout_marginTop="66dp"
android:text="Name" />
<Button
android:id="@+id/buttonCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginStart="158dp"
android:layout_marginTop="316dp"
android:text="Count!"
android:onClick="buttonCount"/>
<Button
android:id="@+id/buttonReset"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="291dp"
android:text="Reset!"
android:onClick="buttonReset"
/>
<TextView
android:id="@+id/count_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="210dp"
android:text="TextView" />
</RelativeLayout>
'개발 > Mobile' 카테고리의 다른 글
[Java] 인터페이스2, 다형성 (0) | 2023.09.17 |
---|---|
[Android] Intent (0) | 2023.09.17 |
[Android] 안드로이드의 주요 개념 (Activity/View/Layout/Multi Thread) (0) | 2023.09.17 |
[Java] 인터페이스 (다중 상속 / 콜백 메소드) (0) | 2023.09.17 |
[Android] Activity States / Callback graph / 다음 액티비티로 넘어가는 Intent (0) | 2023.09.16 |