오늘이라도
[Android] 4. 새 화면 띄우기, Linear Layout ① 본문
https://github.com/upcake/Class_Examples
교육 중에 작성한 예제들은 깃허브에 올려두고 있습니다.
gif 파일은 클릭해서 보는 것이 정확합니다.
- 새 화면 띄우기 -
- 버튼을 만들고 id는 btnNew, text는 '새 화면 띄우기', textsize는 24로 하였다.
- 안드로이드 스튜디오에서 화면을 세는 단위를 Activity라 한다.
- MainActivity가 있는 패키지 우클릭 - New - Activity - 원하는 Activity 선택
- 액티비티 이름을 정해주고 Finish를 누른다.
- 액티비티를 만들면 xml도 같이 만들어진다.
- 속성 탭의 Constraint Widget으로 요소의 위치, 마진, Constraints를 조정할 수 있다.
- 속성 탭의 gravity로 정렬 위치를 설정할 수 있다.
- 속성 탭의 background로 배경 색을 설정할 수 있다.
- xml의 코드 부분에 android:textColor를 추가하여 문자 색을 설정할 수 있다.
- 색깔 코드가 있는 라인의 라인 번호 옆 부분에서 해당하는 코드의 색깔을 알 수 있다.
package com.example.my01_helloworld;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
Button btnCall, btnNew; // 전역 변수
EditText etPhoneNum; // 전역 변수 정의만 할 수 있다.
@Override
protected void onCreate(Bundle savedInstanceState) { // onCreate() : 메모리에 등록하면서 작동하는 메서드
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // setContentView() : 매개 변수를 화면에 출력하는 메서드
// R. : resource(res)의 약자
etPhoneNum = findViewById(R.id.etPhoneNum);
btnCall = findViewById(R.id.btnCall); // 지역 변수
// btnCall이란 id를 가진 객체를 찾아서 btnCall 변수에 입력한다.
btnCall.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String phoneNum = "tel:" + etPhoneNum.getText().toString();
// Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:010-1234-5678"));
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(phoneNum));
startActivity(intent);
}
});
btnNew = findViewById(R.id.btnNew);
btnNew.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplicationContext(), Sub1Activity.class);
// getApplicationContext() : 현재(메인)의 환경(Context)을 호출한 곳으로 넘겨줌
// Sub1 화면을 띄운다.
startActivity(intent);
}
});
}
public void btn1Clicked(View view) {
Toast.makeText(this, "버튼1 클릭!", Toast.LENGTH_SHORT).show();
// context : 어디에 있는지 환경을 지정
// this : 현재 참조중인 MainActivity를 지정
// LENGTH_SHORT : 2 ~ 3초 정도 보여줌
// LENGTH_LONG : 5초 정도 보여줌
}
public void btn2Clicked(View view) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://m.naver.com"));
startActivity(intent);
// Intent : 무언가 새 창을 띄울때는 Intent를 사용한다.
}
}
package com.example.my01_helloworld;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
public class Sub1Activity extends AppCompatActivity {
Button btnMain; // ① 버튼을 선언한다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub1);
btnMain = findViewById(R.id.btnMain); // ② 버튼을 찾는다.
btnMain.setOnClickListener(new View.OnClickListener() { // ③ 버튼의 기능을 지정한다.
@Override
public void onClick(View v) {
finish(); // 서브 창이 닫힌다.
}
});
}
}
- Linear Layout ① -
- File - New - New Project에서 새 프로젝트를 만들 수 있다.
- 프로젝트의 이름, 언어, 최소 SDK를 설정한다.
- xml의 코드부에서 사진과 같이 LinearLayout을 설정한다.
- 속성 탭의 Layout에서 요소의 너비와 높이를 설정할 수 있다.
- wrap_content : 해당 요소의 내용물 크기만큼 설정
- match_parent : 부모 레이아웃의 너비, 높이만큼 설정
'취업성공패키지 SW 개발자 교육 > Android' 카테고리의 다른 글
[Android] 6. Frame Layout : string, visibility, invisible, gone, scaleType, 디버깅 (0) | 2020.05.13 |
---|---|
[Android] 5. Linear Layout ② : 화면 분할하기, Relative Layout ① (0) | 2020.05.12 |
[Android] 3. 아이콘 지정, 버튼 - 알람창 띄우기, 버튼 - 네이버 연결, 버튼 - 전화 연결, 전화 번호 입력 칸 만들기 (0) | 2020.05.08 |
[Android] 2. textSize, gravity, 폰트 설정, 자동 import 설정, Hello World 작동 (0) | 2020.05.07 |
[Android] 1. 안드로이드 개발 환경 구축 ① (0) | 2020.05.06 |