반응형
무언가 작업을 수행하기 위해 사용되는 일종의 명령 또는 데이터를 전달하는데 사용
인텐트 구성요소 :액션(수행할기능)과 데이터 (대상의 데이터)
다른앱구성요소에 인텐트를 전달할수 있는 대표적인 메서드
-startActivity()또는 startActivityForressult() //액티비티띄울때
-startService()또는 bindService()//서비스 시작할때
-broadcastIntent()//인텐트객체를 브로드캐스팅 방식으로 전송할때
<androidmanififest.xml>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.sampleintent">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.SampleIntent">
<activity android:name=".MenuActivity"
android:label="메뉴액티비티"
android:theme="@style/Theme.AppCompat.Dialog">
</activity>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
<menuActivity.java>
package com.example.sampleintent;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MenuActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
Button button=findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent =new Intent();
intent.putExtra("name","mike"); //인텐트객체생성하고 name의 값을 부가데이터로 넣기
setResult(RESULT_OK,intent); //응답보내기
finish(); //현재 액티비티 없애기
}
});
}
}
<MainActivity.java>
package com.example.sampleintent;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
public static final int REQUEST_CODE_MENU=101; //새 액티비티를 띄울때 보낼 요청코드
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button =findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent= new Intent(getApplicationContext(),MenuActivity.class); //이곳에 menu activity를 띄우겟다
startActivityForResult(intent,REQUEST_CODE_MENU); //해당 액티비티에 요청코드 보내기
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==REQUEST_CODE_MENU) { //메뉴티비티에 요청한 코드번호
Toast.makeText(getApplicationContext(), "요청코드" +resultCode, Toast.LENGTH_LONG).show();
if (resultCode == RESULT_OK) { //메뉴엑티비티에서 받은 코드번호
String name = data.getStringExtra("name"); //키값: 전달받은 데이터
Toast.makeText(getApplicationContext(), "응답을 전달된 name" + name, Toast.LENGTH_LONG).show();
}
}
}
}
반응형
'안드로이드' 카테고리의 다른 글
일정시간이후에 실행하기 (0) | 2021.02.03 |
---|---|
스레드와 핸들러 이해하기 (0) | 2021.02.03 |
activity 자동회전 (0) | 2021.01.26 |
[안드로이드] 검색 기능 (0) | 2018.01.02 |
[안드로이드]dialog size 조절 , 레이아웃 조절 (1) | 2018.01.02 |