1. 프로젝트 구조
1) Android 앱 모듈
2) 라이브러리 모듈
3) Google App Engine 모듈
2. 프로젝트 트리 구조
1) App
- manifests
> AndroidManifest.xml(안드로이드 앱 구조 설명)
- java(자바의 소스파일)
- res(리소스파일)
> drawable(앱의 아트워크 저장, 처음에는 비어있음)
> layout(앱의 레이아웃 저장) - main.xml(주 동작의 레이아웃파일)이 처음에 저장
> minimap(런처 화면 아이콘이 포함된 파일 저장) - ic_launcher.png
> values - colors.xml, dimens.xml, strings.xml, styles.xml
2) Gradle Scripts(빌드 배포 도구정보)
- 000.gradl
- 000.properties
3. 시작하기
1) Project
- 이름과 기능 빌드 언어 선택
2) 첫 화면
- java 디렉토리 하위에 있는 메인 디렉토리 하위에 생성되는 MainActivity.java(동적 표현)
- res 하위 layout에 생성된 activity_main.xml(정적 표현)
4. 강좌 내용 정리
1) 텍스트 설정, 버튼 눌러 버튼 바꾸기
- layout 설정 (activity_main.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:orientation="vertical"
tools:context=".MainActivity">
<EditText
android:id="@+id/et_id"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:textSize="25dp"
android:textColor="#F44336"
android:hint="아이디를 입력하세요..." />
<Button
android:id="@+id/btn_test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="버튼"/>
</LinearLayout>
- 동적기능 부여M(ainActivity.java)
package com.example.firstapp;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
EditText et_id; // 텍스트 변환할 id 지정
Button btn_test; // 텍스트 변환 할 버튼 id 지정
@Override
protected void onCreate(Bundle savedInstanceState) { // 첫 시작하는 부분
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_id = findViewById(R.id.et_id); // resource.id.et_id > et_id를 가져와라
btn_test = findViewById(R.id.btn_test); // btn_test를 가져와라
btn_test.setOnClickListener(new View.OnClickListener() { // 버튼을 클릭하면 다음을 실행해라
@Override // onClick 클래스 기능 추가
public void onClick(View view) { // 질문: View 변수는 왜 두번 들어감????
et_id.setText("Loquens"); // 지정한 텍스트로 전환해라
}
});
}
}
2) Intent (다른 구성 요소로부터 작업 요청하는 기능, 화면전환기능에 사용)
- 버튼을 누르면 다른 페이지로 이동하여 스트링 데이터 전달하고 받는 기능 구현, 다른 페이지가 될 activity 추가
- MainActivity 구성(.xml / .java)
<?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"
tools:context=".MainActivity">
<EditText
android:id="@+id/et_test"
android:layout_width="200dp"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn_move"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="이동" />
</LinearLayout>
package com.example.intentexample;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
private Button btn_move;
private EditText et_test;
private String str;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_test = findViewById(R.id.et_test);
btn_move = findViewById(R.id.btn_move);
btn_move.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
str = et_test.getText().toString(); // getText를 string 형태로 입력해라
Intent intent = new Intent(MainActivity.this, SubActivity.class);
intent.putExtra("str", str); // 이름정보, 실제 이름
startActivity(intent); // 엑티비티 이동
}
});
}
}
- subActivity 구성(.xml / .java)
<?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"
tools:context=".SubActivity">
<TextView
android:id="@+id/tv_sub"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"
android:text = "서브콘텐츠 도착" />
</LinearLayout>
package com.example.intentexample;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
public class SubActivity extends AppCompatActivity {
private TextView tv_sub;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub);
tv_sub = findViewById(R.id.tv_sub);
Intent intent = getIntent();
String str = intent.getStringExtra("str"); //intent 된 string데이터 받기
tv_sub.setText(str);
}
}
'Development > Android Studio' 카테고리의 다른 글
(Android Studio) Chapter6. Fragment (0) | 2023.02.24 |
---|---|
(Android Studio) Chapter5. Recycler View (0) | 2023.02.23 |
(Android Studio) Chapter4. Camera (0) | 2023.02.19 |
(Android Studio) Chapter3. ListView, Navigation Menu, Shared Preferences, Web View (0) | 2023.02.12 |
(Android Studio) Chapter2. ImageView, Package Structure (0) | 2023.02.05 |