반응형
액티비티에서 버튼이나 메뉴를 누르면 다른 액티비티를 호출해서 이동해야 하는 경우가 있다. 안드로이드 앱을 개발하다보면 상당히 자주 사용해야 하는 기법이다.
1. 부모 액티비티의 layout을 입력창과 버튼으로 구성한다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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">
<EditText
android:id="@+id/et_test"
android:layout_width="200dp"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/btn_move"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="이름" />
</LinearLayout>
<activity_main.xml>
2. MainActivity.java에 EditText와 Button을 연결해준다.
package com.example.intentexample;
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;
public class MainActivity extends AppCompatActivity {
private Button btn_move;
private EditText et_test;
private String str;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_test = findViewById(R.id.et_test); //xml과 연결
btn_move = findViewById(R.id.btn_move);
btn_move.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
str = et_test.getText().toString();
Intent intent = new Intent(MainActivity.this, SubActivity.class);
intent.putExtra("str",str);
startActivity(intent);
}
});
}
}
et_test에 입력받은 텍스트를 str에 저장해서 intent로 넘겨준다.
3. 자식 액티비티의 레이아웃은 간단하게 부모 액티비티의 입력창의 글자를 인텐트로 받아서 화면에 표시하는 것으로 한다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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=".SubActivity">
<TextView
android:id="@+id/tv_sub"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"
android:text="서브 액티비티 도착"/>
</LinearLayout>
4. 자식 액티비티에서는 인텐트에서 str을 가져와서 화면에 뿌려준다.
package com.example.intentexample;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
public class SubActivity extends AppCompatActivity {
private TextView tv_sub;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub);
tv_sub = findViewById(R.id.tv_sub);
Intent intent = getIntent();
String str = intent.getStringExtra("str");
tv_sub.setText(str);
}
}
실행결과
반응형
'Android > 기본기능' 카테고리의 다른 글
[Android] ListView 구성하기 (0) | 2023.10.01 |
---|---|
[Android] ImageView를 누르면 Toast 메시지 띄우기 (0) | 2023.10.01 |
[Android] AOSP 소스 다운로드 및 Emulator 빌드방법 (0) | 2023.07.12 |
[Android] ADB를 윈도우10 환경변수로 등록하기 (0) | 2023.05.24 |
[Android] 앱 버전명 관리 (0) | 2023.02.23 |
댓글