[안드로이드스튜디오] 도서정보 수정,취소

비지·2022년 10월 19일

MainActivity.java

package com.example.booklist;

import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    TextView tv2, tv3, tv4, tv5;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    ActivityResultLauncher<Intent>mStarResult = registerForActivityResult(
            new ActivityResultContracts.StartActivityForResult(),
            result -> {
                if (result.getResultCode() == RESULT_OK) {
                    Intent intent = result.getData();

                    String title = intent.getStringExtra("title");
                    String author = intent.getStringExtra("author");
                    String publisher = intent.getStringExtra("publisher");
                    String pubdate = intent.getStringExtra("pubdate");

                    tv2.setText(title);
                    tv3.setText(author);
                    tv4.setText(publisher);
                    tv5.setText(pubdate);
                }
            }
    );


    public void onButton1Click(View view) {     //수정버튼

        tv2 = findViewById(R.id.textView2);
        String title = tv2.getText().toString();

        tv3 = findViewById(R.id.textView3);
        String author = tv3.getText().toString();

        tv4 = findViewById(R.id.textView4);
        String publisher = tv4.getText().toString();

        tv5 = findViewById(R.id.textView5);
        String pubdate = tv5.getText().toString();

        Intent intent = new Intent(this, SubActivity.class);
        intent.putExtra("title", title);
        intent.putExtra("author", author);
        intent.putExtra("publisher", publisher);
        intent.putExtra("pubdate", pubdate);

        mStarResult.launch(intent);


    }
}

SubActivity.java

package com.example.booklist;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;

public class SubActivity extends AppCompatActivity {

    EditText et1, et2, et3, et4;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sub);

        Intent data = getIntent();
        String title = data.getStringExtra("title");
        String author = data.getStringExtra("author");
        String publisher = data.getStringExtra("publisher");
        String pubdate = data.getStringExtra("pubdate");

        et1 = findViewById(R.id.editText1);
        et1.setText(title);

        et2 = findViewById(R.id.editText2);
        et2.setText(author);

        et3 = findViewById(R.id.editText3);
        et3.setText(publisher);

        et4 = findViewById(R.id.editText4);
        et4.setText(pubdate);
    }

    public void onButton2Click(View view) {     //확인버튼
        String title = et1.getText().toString();
        String author = et2.getText().toString();
        String publisher = et3.getText().toString();
        String pubdate = et4.getText().toString();

        Intent data2 = new Intent(SubActivity.this, MainActivity.class);
        data2.putExtra("title", title);
        data2.putExtra("author", author);
        data2.putExtra("publisher", publisher);
        data2.putExtra("pubdate", pubdate);

        setResult(RESULT_OK, data2);
        finish();

    }

    public void onButton3Click(View view) {     //취소버튼
        finish();
    }
}




명시적 인텐트

  • 서브 액티비티가 보내는 결과값
    인텐트 객체 안에 있는 엑스트라(extra) 필드 이용
    엑스트라(extra)필드는 Bundle 타입의 객체. 데이터="이름과 값"의 쌍
profile
나를 위한 업그레이드 아자아자

0개의 댓글