package com.example.ex_0712;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity2 extends AppCompatActivity {
Button btn_next, btn_next2;
EditText edt_data;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
// 단방향을 위한 View
btn_next = findViewById(R.id.btn_next);
edt_data = findViewById(R.id.edt_data);
// 양방향을 위한 View
btn_next2 = findViewById(R.id.btn_next2);
// btn_next 클릭시 NextActivity로 이동하기!
btn_next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 입력된 데이터 가져오기!
String data = edt_data.getText().toString();
// 단방향의 Intent 생성하기
// Intent(현재 Activity 정보, 넘어갈 Activity 정보)
Intent intent = new Intent(MainActivity2.this, NextActivity2.class);
// Intent에 포함할 데이터 지정하기
// 일종의 태그값에 원하는 값을 담아서 전달
intent.putExtra("data", data);
// Intent 실행명령
startActivity(intent);
// 현재 띄워져 있는 화면을 종료하는 메소드
finish();
}
});
btn_next2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// getApplicationContext() == MainActivity2.this 와 동일한 기능!
Intent intent = new Intent(getApplicationContext(), NextActivity2.class);
// 단방향으로 intent -> startActivity()
// 양방향으로 intent -> startActivityForResult()
startActivityForResult(intent, 0);
}
});
} // OnCreate()
// 통신의 결과값에 따른 처리 메소드 생성 -> 제대로 통신이 되었을 경우
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
// 요청된 코드와 요청의 결과가 OK라면 통신이 잘 되고 있음
Toast.makeText(getApplicationContext(), "양방향 성공!", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), "양방향 실패!", Toast.LENGTH_SHORT).show();
}
}
}
}
package com.example.ex_0712;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class NextActivity2 extends AppCompatActivity {
TextView txt_data;
Button btn_main;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_next2);
txt_data = findViewById(R.id.txt_data);
btn_main = findViewById(R.id.btn_main);
// 저장되어 넘어온 Intent에 접근하기!
// Intent intent2 = getIntent();
// String data = intent2.getStringExtra("data");
// 한줄로 intent 내용 가져오는 방법!
// String data = getIntent().getStringExtra("data");
// txt_data.setText(data);
btn_main.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 양방향의 intent를 사용할때 결과에 대하여
// 돌려보내 줄 수 있는 메소드 -> 매개변수로 통신에 대한 신호값을 보내준다
setResult(RESULT_OK);
finish();
}
});
}
}
'안드로이드' 카테고리의 다른 글
Adapter View (0) | 2022.07.13 |
---|---|
PlainText 내용 TextView에 띄우기 & enter 사용시 이벤트 작동 (0) | 2022.07.13 |
텍스트 입력시 화면 전환 (0) | 2022.07.12 |
안드로이드 프로그래밍(Activity & Internet) (0) | 2022.07.12 |
1~45 랜덤 게임 (0) | 2022.07.12 |