기술 블로그
[안드로이드 복습] 6장 안드로이드는 액티비티다. 본문
반응형
    
    
    
  안드로이드 4대 구성요소
1. 액티비티 : 눈에보이는화면을 만들때 최소 1개 필요
2. 리시버: 브로드캐스트(안드로이드 내부의 전화,알람,문자,방전등)객체를 수신하는 것이 리시버
3. 프로바이더: db나 파일의 정보를 외부의 앱에 공개하기위한 객체. 주로 앱간 데이터공유에 사용
4. 서비스 : 액티비티와 별개로 백그라운드에서 오래 실행되어야 하는 앱에 사용 ,화면이 없음
데이터를 주고받는 과정
1. a 액티비티에서 StartActiviyForResult()로 b 액티비티 시작
2 b 액티비티에서 setResult()로 결과를 a 액티비티로 전달 (startactivty로 전달시 뒤로가기할때 a가 2번나옴;)
3. a 액티비티의 onActivityResult()에서 b 엑티비티에서 전달받은 데이터 처리
| 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 | public class MainActivity extends AppCompatActivity implements View.OnClickListener {//지금은 기본으로 가장많은기능을 가진 AppCompatActivity를 상속받는다.      public static final int REQUEST_CODE = 1000;     private EditText namee;     private EditText agee;     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);          namee = findViewById(R.id.name);          agee = findViewById(R.id.age);        findViewById(R.id.submit).setOnClickListener(this); //mainactivity가 onclickListner를 구현하기위해 View.OnclickListner 인터페이스를 구현합니다.      //View.onclickListner인터페이스 안에 onclick메소드가 있으니 이 안에 작성하도록 설계되어 있다.      }     @Override     public void onClick(View v) {         Intent intent = new Intent(this,sub.class);         intent.putExtra("name",namee.getText().toString());         intent.putExtra("age",agee.getText().toString());         startActivityForResult(intent, REQUEST_CODE); //intent의 정보를 토대로 startActivityForResult메소드 실행 파라미터는 (intent,REQUEST_CODE)     }     @Override //돌려받은 결과를 처리하는 콜 백 onActivityResult에서 결과를 처리      protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {         super.onActivityResult(requestCode, resultCode, data);         if(requestCode==REQUEST_CODE&&resultCode==RESULT_OK&&data!=null){//리퀘스트코드가 같은지 확인,리설트 코드가 result_ok인지확인,data가 널이 아닌지 확인             String result = data.getStringExtra("result");//온 액티비티 리설트는 다른 액티비티에서 setResult코드가 실행되면 이게 실행된다. data형태로 리턴되며 data를 intent처럼 사용한다.             //             Toast.makeText(this, result, 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 41 | import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.TextView; import org.w3c.dom.Text; public class sub extends AppCompatActivity implements View.OnClickListener {     TextView t;     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_sub);         Intent intent = getIntent();//겟인텐트 빈칸         String pname = intent.getStringExtra("name");//putextra와 getStirngextra//해쉬값아이디는 큰따옴표로 감싼다.         String page = intent.getStringExtra("age");          t = findViewById(R.id.textView);         t.setText(pname+"그리고"+page);           //버튼 이벤트 연결,          findViewById(R.id.button).setOnClickListener(this);//. 셋온클릭 디스 다음에는 알트엔터로 온클릭을 implements한다.     }     @Override     public void onClick(View v) {         Intent intent = new Intent();//자동으로 리턴되기 떄문에 인자값 안넣어줘도 됨         intent.putExtra("result",t.getText().toString());//보낼 값의 키는 "result"로 한다.         setResult(RESULT_OK,intent);//셋 리설트로 리턴하고 리설트 ok로 리설트코트 넣고  보낼인텐트도 넣고 //파라미터 = (결과코드,인텐트)         finish();//이 액티비티는 죽임     } } | cs | 
반응형
    
    
    
  'Android' 카테고리의 다른 글
| layoutInflater (0) | 2018.11.17 | 
|---|---|
| [안드로이드 복습]7장 암시적 인텐트 (0) | 2018.11.17 | 
| [안드로이드 복습]3장 뷰와 간단한 인텐트 (0) | 2018.11.17 | 
| [안드로이드 복습] 10장 화면제약을 극복하기(스크롤뷰와 리스트뷰) (0) | 2018.11.16 | 
| android soundpool 사용하기 (0) | 2018.10.20 | 
			  Comments