반응형
화면구성과 화면 전환(데이터 넘기기) & 인텐트 개념
#이장의 핵심 코드
1.메인화면에서 메뉴화면 띄울때
//시스템에서 activity를 관리한다
//시스템에 엑티비티를 띄워 달라 요청할때
// (알아들을 수 있는 포멧이 intent)
Intent intent = new Intent(getApplicationContext(),MenuActivity.class);
//시스템 쪽으로 intent 전달 -> 메뉴페이지를 열어달라, + 식별코드
startActivityForResult(intent, 101);
2.메뉴화면에서 메인화면으로 데이터 전달 할때
//스텍에서 화면관리를 한다.
//메인화면 위에 메뉴 화면이 떠 있는 상황
// 메뉴화면에서 메인화면으로 데이터를 전달할 때
// 시스템을 통과하기 때문에 intent 객체 사용
Intent intent = new Intent();
intent.putExtra("key","l need you Lord");
setResult(Activity.RESULT_OK,intent);
3.메인화면에서 메뉴화면이 보낸 데이터를 받을 때
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 101 ){
String key = data.getStringExtra("key");
Toast.makeText(getApplicationContext(),"메뉴에서 응답받은 데이터:"+key,Toast.LENGTH_SHORT).show();
}
}
#안드로이드 구성요소
1.엑티비티 - > 하나의 화면
2.서비스 -> 계속 뒤에서 동작
3.브로드캐스트 수신자
4.내용제공자
#엑티비티 구성 과정
#시스템 역할
#화면간 전환
#메인화면
#소스
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | package me.happygate.myapplication007; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.Toast; 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); //버튼 클릭 button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //시스템에서 activity관리 //시스템에 요청 (알아들을 수 있는 포멧이 intent) Intent intent = new Intent(getApplicationContext(),MenuActivity.class); //시스템 쪽으로 intent 전달 startActivityForResult(intent,101); } }); } //메뉴화면에서 보낸 데이터를 인텐트로 받는다. @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode == 101){ String name = data.getStringExtra("name"); Toast.makeText(getApplicationContext(), "response from menu page:"+ name, Toast.LENGTH_SHORT ).show(); } } } | cs |
#메뉴화면
#소스
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | package me.happygate.myapplication007; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; 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 button2=(Button)findViewById(R.id.button2); button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //스텍에서 화면관리. 메인 화면 위에 메뉴 화면이 있는 상황 //메뉴화며에서 메인화면으로 데이터 전달 //시스템을 통과하기 때문에 intent 객체 사용 Intent intent = new Intent(); intent.putExtra("name","hahaha hohohoho"); //메인 화면으로 전달 setResult(Activity.RESULT_OK,intent); //메뉴 화면 없애기 finish(); } }); } } |
반응형
'매일코딩 > 안드로이드' 카테고리의 다른 글
[안드로이드 기초] Serializable 과 Parcelable로 객체 데이터 넘기고 받기 (0) | 2017.08.15 |
---|---|
[안드로이드 기초] 인텐트로 전화걸기 기능 실행하기 (0) | 2017.08.15 |
[안드로이드 기초] inflater로 main화면에서 sub 화면 열기 (0) | 2017.08.14 |
[안드로이드 팁] 상단바 하단바 숨기기(전체화면) (931) | 2017.08.11 |
[안드로이드 기초] 프레임 레이아웃 - 버튼 클릭으로 사진 바꾸기 (0) | 2017.08.11 |
댓글