Android Intent startActivityForResult
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 |