intent는 activity와 acivity사이의 data를 전달하기위해 사용된다
intent를 이용한 method에는 startActivity(), startActivityForResult()
startService(), bindServie(), broadcastIntent()가있다
intent의 기본구성요소에는 Action과 Data가 있다
Action은 수행기능을 의미하고 Data는 수행할대상의 data이다
Action에는 ACTION_VIEW, ACTION_EDIT가 있다
Intent 안에 여러 유형의 Data가있는데
system에서 data의 format에 맞게 activity를 보여준다
다양한 방법으로 Intent를 생성할수 있다
Intent()
Intetnt(Intent *)
Intent(action, uri)
Intent(context, class)
Intetnt(string action, uri, context pacakage, class())
명시적(Explicit) Intent는 class 객체나 컴포넌트 이름을 지정함으로 호출대상이 명료해지는경우
암시적(Implicit) Intent는 수행할 Action과 Data를 지정했더라도 호출대상이 지정되어있지않다
암시적 Intent의 anction, data는 MIME Type에의해 자동으로 activity를 찾아서 띄운다
암시적 Intent의 다른속성으로는 부가 데이터(Extras)가있고 getExtra, putExtra를 통해 data를 이동시킨다
activity_main.xml
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint = "put the telephone(000-0000-0000)"
android:textSize = "20sp"
android:padding = "10dp"
android:layout_marginTop = "100dp"
android:layout_marginBottom="40dp"/>
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="after putting telephone, click the below button"
android:textSize = "15sp"
android:layout_marginBottom = "10dp"/>
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text = "call"
android:textSize="20sp"
android:textStyle="bold"
android:onClick = "clickBtn1"
android:layout_gravity="center_horizontal"/>
MainActivity.java
public class MainActivity extends AppCompatActivity {
EditText editText;
TextView textView;
public static final int REQUEST_CODE=111;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = findViewById(R.id.editText);
textView = findViewById(R.id.textView);
}
public void clickBtn1(View view){
String telNumber = editText.getText().toString();
// 암시적(implicit) Intent
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(telNumber));
startActivity(intent);
/* 명시적 intent 1.호출대상 객체(class)를 지정
Intent intent = new Intent(getApplicationContext(), Main2Activity.class)
startActivityForResult(intent, REQUEST_CODE);
*/
/* 명시적 intent 2.
Intent intent = new Intent();
ComponentName componentName = new ComponentName("com.example.myapplication", "come.example.myapplication.Main2Activity");
intent.setComponent(componentName);
startActivityForResult(intent, REQUEST_CODE);
*/
}
}
'android studio' 카테고리의 다른 글
android internet check (0) | 2019.09.05 |
---|---|
activity life cycle (0) | 2019.08.14 |
startActivityForResult()(화면전환) (0) | 2019.08.13 |
activity 추가하기 (0) | 2019.08.13 |
Recycler View (0) | 2019.08.13 |