Android Intent startActivityForResult

Posted by PeEn
2020. 12. 7. 21:48 Programing/Android

startActivityForResult(intent,반환코드); 를 인텐트로 넘기는 구간에 작성

onActivityResult 매소드를 Override하여서 반환된 데이터를 처리한다

MainActivity.java

public class MainActivity extends AppCompatActivity {
TextView tvText;
int Cnt=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tvText = (TextView)findViewById(R.id.tvText);
        tvText.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this,MainActivity2.class);
                startActivityForResult(intent,1);
            }
        });
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode==1){
            if(resultCode== RESULT_OK){
                Cnt += Integer.valueOf(data.getStringExtra("num"));
                tvText.setText(Cnt+"");
            }
        }
    }
}

새로운 인텐트를 생성한다 - Intent intent = new Intent();

데이터를 setReuslt하여 반환값 지정해주고 finish();

MainActivity2.java

public class MainActivity2 extends AppCompatActivity {
    EditText editText;
    Button btnBack;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        btnBack = (Button)findViewById(R.id.btnBack);
        editText = (EditText)findViewById(R.id.edtNum);
        btnBack.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent =new Intent();
                intent.putExtra("num",editText.getText().toString());
                Toast.makeText(MainActivity2.this, editText.getText().toString(), Toast.LENGTH_SHORT).show();
                setResult(RESULT_OK,intent);
                finish();
            }
        });
    }

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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=".MainActivity">
    <TextView
        android:id="@+id/tvText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:textSize="30sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout>

 

activity_main2.xml

<xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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=".MainActivity2">
    <EditText
        android:id="@+id/edtNum"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="numberSigned"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
   <Button
        android:id="@+id/btnBack"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/edtNum" />
<androidx.constraintlayout.widget.ConstraintLayout>

'Programing > Android' 카테고리의 다른 글

Android Dialog 화면 꽉채우기  (0) 2020.12.07
Android HTML, 외부주소에서 JSON 파싱해 가져오기  (0) 2019.12.28
Android 리스트뷰  (0) 2019.12.28
assets 사전 insert DB  (0) 2019.12.09
Adapter, GridView와 ListView 적용법  (0) 2019.11.25