본문 바로가기
Android Studio

[Android Studio] Intent로 다른 액티비티 띄우기(연락처 선택, 웹브라우저 실행, SMS/Email 작성)

by coding_su 2023. 2. 7.

📝인텐트로 다른 액티비티 띄우기(연락처 선택, 웹브라우저 실행, SMS/Email 작성)

인텐트로 해당 버튼을 누르면 연락처를 선택하는 액티비티로 이동하는 코드

public class MainActivity extends AppCompatActivity {

    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = findViewById(R.id.button);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                selectContact();
            }
        });
    }
    
    // 연락처 선택하는 액티비티 띄우는 메소드 만들어 사용
    void selectContact() {
        Intent intent = new Intent(Intent.ACTION_PICK);
        intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
        startActivity(intent);
    }
}

 

인텐트로 해당 버튼을 누르면 웹브라우저 액티비티로 이동하는 코드

// 버튼 클릭시 웹브라우저로 이동
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        openWebPage("https://coding-jisu.tistory.com/");
    }
});

// 웹브라우저 실행시키는 인텐트 메소드
void openWebPage(String url) {
    Uri uri = Uri.parse(url);
    Intent intent = new Intent(Intent.ACTION_VIEW, uri);
    startActivity(intent);
}

 

인텐트로 해당 버튼을 누르면 SMS 보내기 위한 액티비티로 이동하는 코드

// 버튼 누르면 해당 번호에 SMS 보내는 액티비티로 이동
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        composeSMS("010-1111-1111");
    }
});

// SMS 보내기 위한 액티비티 띄우기
void composeSMS(String phone) {
    Uri uri = Uri.parse("smsto:+phone");
    Intent intent = new Intent(Intent.ACTION_VIEW, uri);
    startActivity(intent);
}

 

인텐트로 해당 버튼을 누르면 이메일 작성하는 액티비티로 이동하는 코드

// 버튼 누르면 입력한 메일주소에 메일 보내는 액티비티로 이동
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        composeEmail(new String[]{"abd@naver.com", "asf@naver.com"}, "테스트메일");
    }
});

// 이메일 작성하는 액티비티 띄우기
void composeEmail(String[] address, String subject) {
    Uri uri = Uri.parse("mailto:");
    Intent intent = new Intent(Intent.ACTION_SENDTO);
    intent.setData(uri);
    intent.putExtra(Intent.EXTRA_EMAIL, address);
    intent.putExtra(Intent.EXTRA_SUBJECT, subject);
    startActivity(intent);
}

 

+ 어댑터에서 사용 예시

메인 클래스에서 함수를 만들어서 어댑터에서 사용하는 코드 예시

((MainActivity)context).openWebPage(URL); 이런식으로 함수를 불러와 사용해준다

cardView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        int index = getAdapterPosition();
        Video video = videoList.get(index);
        String URL = "https://www.youtube.com/watch?v="+video.videoId;
        ((MainActivity)context).openWebPage(URL);
    }
});

 

댓글