안드로이드

Intent 인텐트 사용하여 웹사이트 띄우기, 전화걸기 , 화면간 자료 전달

미스터몽키 2015. 11. 11. 00:25

인텐트 Intent 는 시스템에 이미 설치된 프로그램, 기능을 사용하기위해 시스템에게 전달하는 변수로

웹사이트를 띄우거나, 전화걸기, 사진찍기 등을 실행할 수 있다.

 
//웹사이트 띄우기 리스너
Button btWeb = (Button) findViewById(R.id.btWeb);
btWeb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent1 = new Intent(Intent.ACTION_VIEW, Uri.parse("http://m.naver.com"));
startActivity(intent1);

}
});
//전화걸기 클릭 리스너
Button btPhoneCall = (Button) findViewById(R.id.btPhoneCall);
btPhoneCall.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent1 = new Intent(Intent.ACTION_VIEW, Uri.parse("tel:0322795959"));
startActivity(intent1);

}
});

//1.(메인화면) 서브화면으로 부가데이터(ExtraData) 포함한 인텐트 전달하기
Button btNew2 = (Button) findViewById(R.id.btNew2);
btNew2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent3 = new Intent(getApplicationContext(), New2Activity.class);
intent3.putExtra("loginName", "소녀시대");
startActivityForResult(intent3, 1);

}
});

 

// 2. (서브화면) 메인에서 전달받은 인텐트, onCreate 메소드안에
Intent passedIntent = getIntent();
if (passedIntent != null) {
String vloginName = passedIntent.getStringExtra("loginName");
Toast.makeText(getApplicationContext(), "메인 화면에서 받은 loginName: " + vloginName, Toast.LENGTH_LONG).show();
}

이렇게 하면 vloginName 변수에 "소녀시대" 가 전달된다.

 

 

//1.(메인화면) 서브화면을 호출한 후에 서브화면에서 보내온 인텐트의 부가 데이터 받기

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);

String outName = data.getStringExtra("name");
Toast.makeText(getApplicationContext(), "전달받은 name속성의 값: " + outName, Toast.LENGTH_LONG).show();

}

//2.(서브화면) 메인화면에 인텐트 전달하고 서브화면 닫고 돌아가기
Button btGoBack2 = (Button) findViewById(R.id.btGoBack2);
btGoBack2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent1 = new Intent();
intent1.putExtra("name", "홍길동");

setResult(RESULT_OK, intent1);

finish();
}
});