안드로이드 스튜디오 입문..!!
https://youtu.be/rMGQIIay47w?feature=shared 영상을 참고했다.
안드로이드 스튜디오는 xml로 화면을 구성하고 .java 파일로 세부 기능을 구현한다.
TextView, Button, EditText
TextView는 화면에 텍스트를 표시하는 기능을 담당하며, 안드로이드에서 제공하는 위젯 중 가장 많이 사용되는 위젯이다. 텍스트 출력 기능을 가진 기본 위젯이므로, 텍스트와 연관된 기능을 포함하는 Button 또는 EditText의 부모 클래스이기도 하다.
Button은 클릭 이벤트를 발생시킬 수 있고 EditText는 input처럼 입력을 담당한다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<EditText
android:id="@+id/activity_main__editTextNum1"
android:layout_width="match_parent" //너비 100%
android:layout_height="wrap_content" // 높이 최소화
android:hint="숫자를 입력해주세요."
android:inputType="numberDecimal" />
<EditText
android:id="@+id/activity_main__editTextNum2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="숫자를 입력해주세요." //html의 placeholder처럼 입력창에 미리 보여진다.
android:inputType="numberDecimal" /> //input 자료형을 지정할 수 있다.
<Button
android:onClick="btnAddClicked"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="더하기" />
<Button
android:onClick="btnClearClicked" //click 이벤트를 발생시킬 수 있다. --표시가 그어졌었는데 지금도 사용하는지 더 알아보자
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="지우기" />
<TextView
android:id="@+id/activity_main__textViewRs"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
package com.example.study_3;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_main);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
}
public void btnAddClicked(View view) {
EditText num1 = findViewById(R.id.activity_main__editTextNum1); //js처럼 아이디 값으로 요소를 가져온다.
EditText num2 = findViewById(R.id.activity_main__editTextNum2);
TextView rs = findViewById(R.id.activity_main__textViewRs);
if(num1.getText().toString().isEmpty() || num2.getText().toString().isEmpty()) {
toastMsg("숫자를 입력해주세요.");
return;
}
int result = Integer.parseInt(num1.getText().toString().trim()) + Integer.parseInt(num2.getText().toString().trim());
rs.setText("결과: " + result);
toastMsg("결과: " + rs);
}
private void toastMsg(String msg) {
Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show();
}
public void btnClearClicked(View view) {
EditText num1 = findViewById(R.id.activity_main__editTextNum1);
EditText num2 = findViewById(R.id.activity_main__editTextNum2);
TextView rs = findViewById(R.id.activity_main__textViewRs);
num1.setText("");
num2.setText("");
rs.setText("");
}
}
Android Message
- Toast : 일정 시간이 지나면 자동으로 사라짐 -> 현재는 유사한 snackbar 와 함께 사용
- Dialog : Activity 위에 나타남
- Notification : 알림창에 표시
Toast
- 간단하게 메세지 표시
- 현재 실행되고 있는 화면과 관련 X -> os에게 메세지 출력 요청해 나타남
- 단말기 내의 모든 앱, 구성요소가 요청 가능
- 요청 순서대로 메세지 나타남
주요 메서드, 프로퍼티
- makeText : Toast 메시지 객체 생성, 화면 모양/글자크기/색상 등은 기본 설정된 것 사용 *meterial 로 수정 가능한지 확인
- setGravity : Toast 메세지 표시될 위치 설정
- view : 보여줄 View를 설정할 수 있어 Toast 메세지를 커스터마이징 => 안드11부터 deprecated 되어서 SnackBar 사용 추천
- Duration : 메세지가 표시되는 시간을 설정
'Android > Java' 카테고리의 다른 글
[Android / Java] 보호 번호 입력창 만들기 (0) | 2024.06.07 |
---|---|
[Android / Java] CustomView로 재사용성 높이기 (0) | 2024.06.05 |
[Android / Java] 색상 자료화 (0) | 2024.06.04 |
[Android / Java] 안드로이드의 4대 구성요소 (0) | 2024.06.03 |
[Android / Java] Layout: 화면에 뷰를 수놓는 방법 (0) | 2024.06.03 |