[Android-Native] Button, Click, Intent ?

미숙한 초보 코딩.Js·2020년 12월 12일
0

JavaAndroid

목록 보기
2/4

Button

  • 해당 자석 모양을 활성화 시켜주면 왼쪽 Palette 창에서 가져다 쓰기 편합니다.
  • 버튼을 끌어다가 중앙에 놔두면 가로,세로에 회색 점선 안내표시가 활성화 됩니다.
    • 버튼을 클릭해서 4방면에 파란색 불이 들어오면 위치가 정해진것입니다.
    • 하얀색으로 표시되면 위치가 지정 되지 않은것입니다.왼쪽에 Component Tree 에서 봐도 경고 알림이 떠있습니다. 중앙에 놔두더라도 에뮬레이터를 실행시 왼쪽 위 상단에 표시됩니다.

Click Event

  • 버튼을 만들었으니 클릭을 통해 알림을 보는법

    • xml 파일에서 버튼과 이벤트 속성을 등록후 알림을 보이게 하는 기능은 MainActivity 에서 등록.

    • onClick 속성을 등록하면 onButtonClicked 가 빨갛게 표시가 됩니다. 저건 아직 등록이 안되어서 입니다.

    • activity_main.xml

    • 추가합니다.
      Toast 는 auto import 를 통해서 자동으로 가져와 알림을 보여줍니다.

      ./MainActivity.java
      
      package com.example.test;
      
      import android.os.Bundle;
      import android.view.View;
      import android.widget.Toast;
      
      import androidx.appcompat.app.AppCompatActivity;
      
      public class MainActivity extends AppCompatActivity {
      
        @Override
        protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
        }
        public void onButtonClicked (View v) {
          Toast.makeText(this,"버튼 클릭되었습니다.",Toast.LENGTH_LONG).show();
        }
      }
    • 에뮬레이터에서 버튼 클릭시 알림을 확인해봅시다.

Intent

  • 이제 버튼을 두개 만들어 봅시다. 두개의 onClick 이벤트 이름을 다르게 설정합니다.

  • 이번에는 MainActivity 에서 Intent 를 사용해서 Naver, 전화걸기 해보기

  • 인텐트는 앱 구성 요소 간에 데이터를 전달하거나 실행하려는 기능이 무엇인지 안드로이드 플랫폼에게 전달해주거나, 액티비티 끼리 서로 호출하기 위해서 필요한 통신 장치입니다.

  • 인텐트 생성자

    • Intent(Context packageContext, Class<?> ls)
      첫번째 인자 : 액티비티 클래스를 구현하는 컨텍스트, this 를 주로 사용.
      두번째 인자 : 호출할 액티비티 클래스.
    • Intent(String action, Uri uri, Context packageContext, Class<?>cls)
  • 인텐트는 명시적과 암시적이 있다.


명시적

  • 액티비티간에 인스와 리턴값을 전달하는 도구 인텐트
    주로 Bundle 타입의 Extras를 활용하며, Extras는 인텐트 내의 정보 저장 주머니이고, 호출 하는쪽과 받는 쪽에서 주로 액세스 가능.
    • Extras 에 담아 보낼때
      • Intent putExtra(String name, int value | Stirng value | boolean value)
        첫번째 인자 : 이름
        두번째 인자 : int, String, boolean 중 값으로 사용가능.
    • Extras 에 담아온걸 꺼낼때
      • int getExtra(String name, intdefaultValue)
      • String getStringExtra (String name)
      • boolean getBooleanExtra (String name, boolean defaultValue)
        값이 전달 안될때 두번째 인자는 저장된 디폴트 리턴됨, 문자열은 null
    • 리턴값을 되돌려주는 액티비티 호출 메서드
      • void startActivityForResult(Intent intent, int requestCode)
        두번째 인자는 호출한 대상을 나타냄
    • 호출된 액티비티가 종료되면 다음 메서드 호출
      • void onActivityResult(int requestCode, int resultCode, Intent data)
        첫번째 인자 : 액티비티 호출 전달 요청 코드
        두번째 인자 : 액티비티 실행결과
        세번째 인자 : 데이터

암시적

  • 호출 대상이 명확하게 정의 되어 있지않은 인텐트. 다른 패키지의 액티비티나 서비스 호출 가능.
  • Action_View : 보여줌.
  • Action_DIAL : 전화걸기.
  • Action_Main : 메인 액티비티 실행
  public void onButtonClicked (View v) {
    Intent myIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://m.naver.com"));
    startActivity(myIntent);
  }
  public void onButtonClicked2 (View v) {
    Intent myIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("tel:010-1111-2222"));
    startActivity(myIntent);
  }
profile
힘들땐 블로그 하나더 적자!!![ Suyang ]

0개의 댓글