Activity를 하나 추가한 후 Intent를 사용하여 Activity간 객체 정보를 전달해 보겠습니다.
1. Activity 하나 추가
2. activity_main.xml에 button 추가
3. activity_menu.xml에 버튼 추가
4. MainActivity 기능 구현(MainActivity.java)
1) id를 이용하여 button을 객체에 할당
2) 할당된 버튼에 onClick 메소드 추가
3) 인텐트(Activity간 통신 연결)를 선언하고 MenuActivity와 연결
4) ArrayList 객체 선언하고 요소 추가
5) Intent의 putExtra 메소드를 이용하여 객체를 MenuActivity로 넘겨주기
6) startActivityForResult 메소드를 사용하여 Activity간 통신 시작(button을 클릭하면 MenuActivity가 호출된다.)
5. MenuActivity구현 (MenuActivity.java)
1) MenuActivity에 있는 button 객체에 할당
2) button에 onClick 메소드 추가( finish()는 MenuActivity 종료를 뜻함, 버튼을 누르면 다시 MainActivity로 돌아간다.)\
3) Intent를 정의하고(passedIntent) getIntent를 통해 MainActivity에서 넘겨준 Intent를 받아 passedIntent에 할당
4) processIntent라는 메소드 정의(intent 안에 ArrayList가 있다면 첫번재 요소를 Toast 메세지로 띄어준다.)
결과
+
참고
MainActivity.java 소스
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button); // id로 버튼을 찾아 버튼 객체에 할당
//onClick 메소드 추가
button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Intent intent = new Intent(getApplicationContext(), MenuActivity.class);
ArrayList<String> days = new ArrayList<String>(); //ArrayList 선언
days.add("Monday");
days.add("Tuesday");
//Intent 사용하여 MenuActivity로 객체 넘겨주기
intent.putExtra("days",days);
//Intent를 사용하여 Activity간 통신 start
startActivityForResult(intent, 101);
}
}); //버튼에 대한 onClick 메소드
}
}
MenuActivity.java 소스
public class MenuActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
Button button2 = (Button) findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
finish();
}
});
Intent passedIntent = getIntent();
processIntent(passedIntent);
}
private void processIntent(Intent intent){
if(intent != null){
ArrayList<String> days = (ArrayList<String>)intent.getSerializableExtra("days");
if(days != null){
Toast.makeText(getApplicationContext(),"전달받은 ArrayList의 첫번째 요소 :"+days.get(0),Toast.LENGTH_LONG).show();
}
}
}
}
[Android] Activity의 개요 및 Activity의 생명 주기 소개 (0) | 2020.01.22 |
---|---|
[Android] Parcelable을 이용하여 Activity간 객체 전달하기 (1) | 2020.01.19 |
안드로이드(Android) 어플 아이콘 이미지 변경하기 (0) | 2020.01.06 |
3. 안드로이드(Android) 웹 화면 띄우기 (0) | 2019.12.22 |
2. 안드로이드(Android) AVD 생성 및 실행하기 (0) | 2019.12.20 |