-
Android 실습 (4)Android 2022. 7. 12. 17:18
1) 사진 촬영과 전화 연결이 가능하도록 만들어보겠습니다.
package com.example.ex_0712; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; import android.Manifest; import android.content.Intent; import android.content.pm.PackageManager; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { Button btn_web, btn_camera, btn_dial, btn_call; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn_web = findViewById(R.id.btn_web); btn_camera = findViewById(R.id.btn_camera); btn_dial = findViewById(R.id.btn_dial); btn_call = findViewById(R.id.btn_call); btn_web.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // 웹으로 이동하기 위한 주소 지정! Uri uri = Uri.parse("https://www.naver.com"); // Intent 객체 생성! Intent intent = new Intent(Intent.ACTION_VIEW, uri); // 지정한 Intent를 실행하기 위한 명령 startActivity(intent); } }); btn_camera.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivity(intent); } }); btn_dial.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Uri uri = Uri.parse("tel:010-1234-0000"); Intent intent = new Intent(Intent.ACTION_DIAL, uri); startActivity(intent); } }); btn_call.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // Uri uri = Uri.parse("tel:010-1234-1234"); // call 기능은 권한을 가지고 있어야만 Intent를 통해 사용할 수 있다! // 관련된 권한은 어플자체에 지정을 해야 하므로 AndroidManifest파일에 권한 지정하기 Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:010-1234-1234")); // call에 대한 권한을 받은적이 있는지 없는지 판단하에 // 받은적이 없다면 직접 권한 받아오기! if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED){ // 권한 요청하기 ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CALL_PHONE},0); } startActivity(intent); } }); } }
2) MainActivity에서 입력한 내용이 NextActivity에 뜨도록 해보겠습니다.
package com.example.ex_0712; 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 MainActivity2 extends AppCompatActivity { Button btn_next; EditText edt_data; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); btn_next = findViewById(R.id.btn_next); edt_data = findViewById(R.id.edt_data); // btn_next 클릭시 NextActivity로 이동하기! btn_next.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // 입력된 데이터 가져오기! String data = edt_data.getText().toString(); // 단방향의 Intent 생성하기 // Intent(현재 Activity의 정보, 넘어갈 Activity 정보) Intent intent = new Intent(MainActivity2.this, NextActivity2.class); // Intent에 포함할 데이터 지정하기 // 일종의 태그값에 원하는 값을 담아서 전달 intent.putExtra("data",data); // Intent 실행명령 startActivity(intent); // 현재 띄워져 있는 화면을 종료하는 메소드 finish(); } }); } }
package com.example.ex_0712; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.widget.TextView; public class NextActivity2 extends AppCompatActivity { TextView txt_data; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_next2); txt_data = findViewById(R.id.txt_data); // 저장되어 넘어온 Intent에 접근하기! Intent intent2 =getIntent(); String data = intent2.getStringExtra("data"); // 한줄로 intent 내용 가져오는 방법! // String data = getIntent().getStringExtra("data"); txt_data.setText(data); } }
'Android' 카테고리의 다른 글
Android 이론 (3) (0) 2022.07.13 Android 실습 (5) (0) 2022.07.13 Android 실습 (3) (0) 2022.07.12 Android 이론 (2) (0) 2022.07.07 Android 실습 (2) (0) 2022.07.07