1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public void onClick(View v) {
                // TODO Auto-generated method stub
                String phoneNum = phoneNumEdt.getText().toString();
                String msg = msgEdt.getText().toString();
                Intent intent = new Intent(MainActivity.this, AnotherActivity.class);
                intent.putExtra("phoneNum", phoneNum);
                intent.putExtra("msg", msg);
//                startActivity(intent);//액티비티 그냥 호출
                startActivityForResult(intent, 1001);
                //호출하는 엑티비티로부터 응답을 받기 위해 코드를 지정해서 호출
                //호출했던 엑티비티가 종료되고 이 엑티비티로 돌아올때 ↓
            }
        });        //호출할때 지정해줬던 코드값이 requestCode파라미터에 들어오면서
    }            //onActivityResult함수가 호출됨
 
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode == 1001)
        {
            Toast.makeText(this"Another로부터 돌아옴"0).show();
        }
    }
cs



1
2
3
4
5
6
7
Intent intent = getIntent();
        Bundle bundle = intent.getExtras();
        String phoneNum = bundle.getString("phoneNum");
        String msg = bundle.getString("msg");
        Log.d("DEVEL", phoneNum);
        Log.d("DEVEL", msg); //log에서 확인하는 방법
//배포할때는 지우기
    }

cs



1
2
3
setContentView(R.layout.activity_another);
        //매개변수로 받은 레이아웃 xml자원에 따라 모든 위젯을 객체화하고 + 
        //화면에 그리는 역할
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
ok_btn.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                setResult(RESULT_OK);  // 현재 엑티비티를 호출했던 엑티비티로 돌아갈때 결과 코드를 세팅함
                finish();               // 해당 상수는 Activity클래스에 정의되 있는 상수이고 맘대로 아무 숫자나 써도됨
            }    //엑티비티를 종료시키는 메소드
        });
        cancel_btn.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                setResult(RESULT_CANCELED);
                finish();
            }
        });
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode == 1001){
            if(resultCode == RESULT_OK)
            {
                Toast.makeText(this"Another로부터 확인으로 돌아옴"0).show();
            }
            if(resultCode == RESULT_CANCELED)
            {
                Toast.makeText(this"Another로부터 취소로 돌아옴"0).show();
            }
        }
    }
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//폰번이랑 문자내용으로 이뤄진 모델클래스를 만들어서
//하나의 객체로 묶어서 인텐트에 실어 보냅시당
public class SmsMsg {
    private String phoneNum;
    private String msg;        
    public String getPhoneNum() {
        return phoneNum;
    }
    public void setPhoneNum(String phoneNum) {
        this.phoneNum = phoneNum;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
    
    
}
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
public class SmsMsg implements Parcelable{
 
    @Override
    public int describeContents() {
        // TODO Auto-generated method stub
        return 0;
    }
    @Override
    public void writeToParcel(Parcel dest, int flags) {
        // TODO Auto-generated method stub
        dest.writeString(phoneNum); dest.writeString(msg);
    }
}
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
//편의를 위해 만든 메소드의 이름이 꼭 이형태일 필요는 없음
    public void readFromParcel(Parcel parcel)
    {
        phoneNum = parcel.readString();
        msg = parcel.readString();
    }
    
    public SmsMsg(){
        
    }
    public SmsMsg(Parcel parcel){
        readFromParcel(parcel);
    }
    public static final Parcelable.Creator<SmsMsg> CREATOR = new Creator<SmsMsg>() {
        
        @Override
        public SmsMsg[] newArray(int size) {
            // TODO Auto-generated method stub
            return new SmsMsg[size];
        }
        
        @Override
        public SmsMsg createFromParcel(Parcel source) {
            // TODO Auto-generated method stub
        //매개변수로 넘어온 Parcel객체로부터 순서대로 읽어서 각각 멤버에 세팅하고 만든 모델객체를 리턴    
//            SmsMsg data = new SmsMsg();
//            data.setPhoneNum(source.readString());
//            data.setMsg(source.readString());
//            return data;
            
            return new SmsMsg(source);
        }
    };
cs

1
2
3
4
5
6
7
8
9
10
11
12
String phoneNum = phoneNumEdt.getText().toString();
                String msg = msgEdt.getText().toString();
                Intent intent = new Intent(MainActivity.this, AnotherActivity.class);
                SmsMsg smsMsg = new SmsMsg();
                smsMsg.setPhoneNum(phoneNum);
                smsMsg.setMsg(msg);
                intent.putExtra("SmsMsg", smsMsg);
                
//                intent.putExtra("phoneNum", phoneNum);
//                intent.putExtra("msg", msg);
//                startActivity(intent);//액티비티 그냥 호출
                startActivityForResult(intent, 1001);
cs

1
2
3
4
5
6
7
8
Intent intent = getIntent();
        Bundle bundle = intent.getExtras();
//        String phoneNum = bundle.getString("phoneNum");
//        String msg = bundle.getString("msg");
        SmsMsg smsMsg = (SmsMsg) bundle.get("SmsMsg");
        
        phoneNum_View.setText("전화번호 : " + smsMsg.getPhoneNum());
        main_msg_View.setText("메시지 내용\n"+smsMsg.getMsg())
cs


버튼클릭이벤트 다른방법

1
2
3
    public void registerBtnClick(View v){
        Toast.makeText(this"이벤트 처리 이렇게도 되징"0).show();
    }
cs


' IOT 기반 응용 SW과정 > Android, Arduino' 카테고리의 다른 글

Day92  (0) 2016.07.28
Day91  (0) 2016.07.27
Day89 안드로이드 엑티비티 전환  (0) 2016.07.25
Day88  (0) 2016.07.22
Day87  (0) 2016.07.21

+ Recent posts