728x90
반응형
안드로이드 4대 컴포넌트
액티비티(Activity)
- 화면을 구성하는 가장 기본적인 컴포넌트
서비스(Service)
- 액티비티와 상관없이 백그라운드에서 동작하는 컴포넌트
- 서비스 생성 -> 서비스 시작 -> 서비스 종료
브로드캐스트 리시버(Boradcast Receivewr)
- 문자 메시지 도착, 배터리 방전, SD 카드 탈부착, 네트워크 환경 변화 등이 발생하면 전체 응용 프로그램이 들을 수 있도록 방송 신호 보낸다.
콘텐트 프로바이더(Content Provider)
- 응용프로그램 사이에 데이터를 상호 공유하기 위한 컴포넌트
- 콘텐트 프로바이더의 정보를 제공하는 방법으로는 URI(Uniform Resource Identifier)가 있다.
액티비티 추가
- 일반적으로 액티비티 하나당 XML 파일 하나를 만들어서 사용한다.
- MainActivity.java 코드는 Activity 클래스를 상속받으므로 MainActivity.java를 액티비티라고 부른다.
인텐트
- 안드로이드 4대 컴포넌트가 상호 간에 데이터를 주고 받기 위한 메시지 객체
- 명시적 인텐트와 암시적 인텐트로 구분한다.
명시적 인텐트
- 다른 액티비티의 이름을 명확히 지정할 때 사용하는 방법
- 메인 액티비티에서 인텐트에 데이터를 실어서 넘긴 후, 세컨드 액티비티에서 받은 데이터를 처리
레이팅바 예제
xml 코드
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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="wrap_content"
android:orientation="vertical"
tools:context=".MainActivity">
<RatingBar
android:id="@+id/rBar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" />
<RatingBar
android:id="@+id/rBar2"
style="?android:attr/ratingBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:numStars="10"
android:scrollbarSize="4dp"
android:stepSize="1" />
<RatingBar
android:id="@+id/rBar3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
style="?android:attr/ratingBarStyleIndicator"
android:stepSize="1.5" />
<Button
android:id="@+id/btnInc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="증가" />
<Button
android:id="@+id/btnDec"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="감소" />
</LinearLayout>
java 코드
package com.example.a2c_1026_2;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RatingBar;
public class MainActivity extends AppCompatActivity {
RatingBar rBar1, rBar2, rBar3;
Button btnInc, btnDec;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rBar1 = findViewById(R.id.rBar1);
rBar2 = findViewById(R.id.rBar2);
rBar3 = findViewById(R.id.rBar3);
btnInc = findViewById(R.id.btnInc);
btnDec = findViewById(R.id.btnDec);
btnInc.setOnClickListener(new View.OnClickListener(){
public void onClick(View view)
{
rBar1.setRating(rBar1.getRating() + rBar1.getStepSize());
rBar2.setRating(rBar2.getRating() + rBar2.getStepSize());
rBar3.setRating(rBar3.getRating() + rBar3.getStepSize());
}
});
btnDec.setOnClickListener(new View.OnClickListener(){
public void onClick(View view)
{
rBar1.setRating(rBar1.getRating() - rBar1.getStepSize());
rBar2.setRating(rBar2.getRating() - rBar2.getStepSize());
rBar3.setRating(rBar3.getRating() - rBar3.getStepSize());
}
});
}
}
728x90
반응형
최근댓글