-메인xml-
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<Button
android:id="@+id/btnMain"
android:layout_width="151dp"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginStart="127dp"
android:layout_marginLeft="127dp"
android:layout_marginTop="62dp"
android:layout_marginEnd="133dp"
android:layout_marginRight="133dp"
android:text="새화면띄우기" />
<TextView
android:id="@+id/tvMain"
android:layout_width="171dp"
android:layout_height="135dp"
android:layout_below="@+id/btnMain"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginStart="119dp"
android:layout_marginLeft="119dp"
android:layout_marginTop="42dp"
android:layout_marginEnd="121dp"
android:layout_marginRight="121dp"
android:text="TextView" />
</RelativeLayout>
-메인자바-
package com.example.my10_intentresult;
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;
public class MainActivity extends AppCompatActivity {
Button btnMain;
TextView tvMain;
public final int REQUEST_CODE = 1004;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvMain=findViewById(R.id.tvMain);
btnMain=findViewById(R.id.btnMain);
btnMain.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PersonDto person1 = new PersonDto("css",3333);
Intent intent = new Intent(MainActivity.this,Sub1Activity.class);
intent.putExtra("id","kim");
intent.putExtra("pw",1234);
intent.putExtra("person1",person1);
startActivityForResult(intent,REQUEST_CODE);//결과를 받겠다
}
});
}
// 데이터 받기
@Override //서브1에서 받는 부분
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
if (requestCode==REQUEST_CODE){ //1004이면
if(data !=null){
String key = data.getStringExtra("key");
tvMain.setText(key);
}
}
super.onActivityResult(requestCode, resultCode, data);
}
}
-서브xml-
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Sub1Activity">
<Button
android:id="@+id/btnSub1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginStart="160dp"
android:layout_marginLeft="160dp"
android:layout_marginTop="76dp"
android:layout_marginEnd="163dp"
android:layout_marginRight="163dp"
android:text="메인으로 돌아가기" />
<TextView
android:id="@+id/tvSub1"
android:layout_width="195dp"
android:layout_height="90dp"
android:layout_below="@+id/btnSub1"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginStart="107dp"
android:layout_marginLeft="107dp"
android:layout_marginTop="87dp"
android:layout_marginEnd="109dp"
android:layout_marginRight="109dp"
android:text="TextView" />
</RelativeLayout>
-서브자바-
package com.example.my10_intentresult;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.nfc.Tag;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class Sub1Activity extends AppCompatActivity {
private static final String TAG = "Sub1Activity";
Button btnSub1;
TextView tvSub1;
Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub1);
btnSub1= findViewById(R.id.btnSub1);
tvSub1 = findViewById(R.id.tvSub1);
//데이터 받는 곳
intent = getIntent();
String id=intent.getStringExtra("id");
int pw = intent.getIntExtra("pw",0); //INT값은 기본값을 주어야 한다.
PersonDto person1 = (PersonDto) intent.getSerializableExtra("person1"); //serializable로 받음
Log.d(TAG, "onCreate: id : "+id);
Log.d(TAG, "onCreate: pw : "+pw); //로그에는 int형을 단독으로 쓰지 못한다.
tvSub1.setText("받은값은 : "+id+", "+pw);
tvSub1.append("\nPerson1 : "+person1.getId()+", "+person1.getPw());
// tvSub1.setText(tvSub1.getText()+"\nPerson1 : "+person1.getId()+", "+person1.getPw());
//메인에 데이터 보내기
btnSub1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent reintent = new Intent();
reintent.putExtra("key",tvSub1.getText().toString()+" ㅋㅋㅋ");
setResult(RESULT_OK,reintent); //메인에 결과를 보냄
finish(); //엑티비티 종료
}
});
}
}
'For developer > Android' 카테고리의 다른 글
(Android)my10_intentresult (0) | 2020.05.21 |
---|---|
(my09_layoutinflate)인플레이트 (0) | 2020.05.21 |
(Android)공모전 앱 제작(~ing) (0) | 2020.05.17 |
(Android)inflate (0) | 2020.05.15 |
(Android)그라디언트 ,finger_drawable (0) | 2020.05.15 |