반응형
■ 안드로이드의 4대 컴포넌트
안드로이드의 4대 컴포넌트에는 액티비티, 서비스, 브로드캐스트 리시버, 콘텐트 프로바이더가 있다.
- 액티비티: 화면을 구성하는 가장 기본적인 컴포넌트
- 서비스: 화면과 상관없이 백그라운드에서 동작하는 컴포넌트 / 생성 ->시작 -> 종료 ex)백신
- 브로드캐스트 리시버: 여러 응용프로그램이나 장치에 메시지 전달하기 위해 방송메시지 사용 ex)배터리 방전알람
- 콘텐트 프로바이더: 응용프로그램 사이에 데이터를 공유하기 위한 컴포넌트, 처리된 데이터는 일반적으로 DB 혹은 파일로 저장된다.
■액티비티
액티비티는 사용자에게 보여주는 화면을 만들기 때문에 안드로이드의 4개 컴포넌트 중 가장 핵심적인 요소다
안드로이드폰에 나타나는 화면 하나하나를 말하며 ,액티비티 하나당 화면 하나라고 볼 수 있다.
■여러개의 액티비티를 만드는 법
1) [New] - [Activity]-[Empty Activity] 클릭 시 activity.xml 자동 생성된다.
* [New] - [Java Class]로 생성해도 되지만 이 경우 xml 파일이 자동으로 생성되지 않는다.
2) [manifests] - [AndroidManifest.xml]에 SubActivity에 대해 <activity></activity>가 자동으로 생성된 것을 확인할 수 있다.
*자동으로 생성되지 않았을 경우 직접 입력
3) 화면 디자인 및 편집 - xml 작성
메인 페이지의 EditText에 입력한 문자를 서브페이지에 전달해서 화면에 표시
- activity_main.xml
<?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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="horizontal">
<EditText
android:id = "@+id/edit_text"
android:layout_width="250dp"
android:layout_height="wrap_content"
></EditText>
<Button
android:id = "@+id/btn_move"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="이동"
></Button>
</LinearLayout>
- activity_sub.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="match_parent"
android:gravity="center_vertical|center_horizontal"
tools:context=".SubActivity">
<TextView
android:id = "@+id/subText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="서브 액티비티"
android:textSize = "30dp"
></TextView>
</LinearLayout>
4) 자바코드 작성 및 수정
-MainActivity.java
package com.androidpark.Activities;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private Button btn_move;
private EditText edit_text;
private String str;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle("메인페이지");
btn_move = (Button)findViewById(R.id.btn_move);
edit_text = (EditText)findViewById(R.id.edit_text);
btn_move.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
str = edit_text.getText().toString();
Intent intent = new Intent(MainActivity.this,SubActivity.class); // 해당 링크로 이동
intent.putExtra("str",str);
startActivity(intent); // 새로운 액티비티를 화면에 출력하는 메소드
}
});
}
}
✅ intent 인텐트 생성
Intent intent = new Intent(메인액티비티 , 인텐트에 포함될 액티비티.class)
- 메인액티비티 => getApplicationContext() = MainActivity.this 둘 중에 하나로 작성
- 인텐트에 포함될 액티비티의 경우 뒤에 꼭 .class 를 붙여야 한다.
intent.putExtra("str",str) 는 데이터를 인텐트에 넣은 다음 startActivity()로 인텐트를 다른 엑티비티로 넘긴다.
-SubActivity.java
package com.androidpark.Activities;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
public class SubActivity extends AppCompatActivity {
private TextView subText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub);
setTitle("서브페이지");
subText = (TextView)findViewById(R.id.subText);
Intent intent = getIntent();
String str = intent.getStringExtra("str");
subText.setText(str);
}
}
✅ intent 전달 받기
getStringExtra("str")은 메인 엑티비티에서 전달한 인텐트를 받는다.
인텐트와 액티비티
서비스, 브로드캐스트,콘텐트 프로바이더
반응형
'Adroid Studio' 카테고리의 다른 글
Android Studio_안드로이드 스튜디오 앱 만들기6_SQLite의 기본 (0) | 2022.09.01 |
---|---|
Android Studio_안드로이드 스튜디오_4대컴포넌트_액티비티-2 (2) | 2022.08.29 |
Android Studio_옵션메뉴와 컨택스트 메뉴 차이 (0) | 2022.08.26 |
Android Studio_안드로이드 스튜디오_간단한 리스트 만들기2(RecyclerView) (0) | 2022.08.26 |
Android Studio_안드로이드 스튜디오_간단한 리스트 만들기1(ListView) (0) | 2022.08.25 |