728x90

1. 화면전환은 창이 최소 두 개 이상을 필요하므로
패키지에서 SubActivity 만들기
2. acitivty_main.xml (LinearLayout)에서
<Button
android:id="@+id/btn_move"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="이동"/>
Button 속성 추가
MainActivity.java에서
private Button btn_move;
변수 생성 후 Oncreate안에
btn_move=findViewById(R.id.btn_move);
아이디 찾아오기
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, SubActivity.class);//두 번째는 클래스 명으로
startActivity(intent); //액티비티 이동
}
});
Intent객체 만들어서 이동하기
3.activity_sub.xml (LinearLayout)에서
<TextView
android:id="@+id/tv_sub"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"
android:text="서브 액티비티 도착"/>
속성 써주기
*sp: 글씨 크기 단위
dp: 길이 (길이, 너비 설정할 때)
4. subactivity에서 글씨 바꿔주기 위해 activity_main.xml에서 EditText추가
<EditText
android:id="@+id/et_test"
android:layout_width="200dp"
android:layout_height="wrap_content"/>
MainActivity.java에서
private EditText et_test;
et_test=findViewById(R.id.et_test);
추가
private String str;
public void onClick(View v) {
str = et_test.getText().toString();//toString으로 변환해줘야 함.
Intent intent = new Intent(MainActivity.this, SubActivity.class);
intent.putExtra("str",str); //subExtra로 쏜다
startActivity(intent); //액티비티 이동
}
str만든 후 쏴주기
5. SubActivity.java에서
Intent intent = getIntent(); // Intent로 날라오는 값 있으면 받겠다
String str = intent.getStringExtra("str"); //안에 담겨짐 별명은 같아야 함.
쏴준 거 받기
private TextView tv_sub;
변수 만들어서
tv_sub = findViewById(R.id.tv_sub);
tv_sub.setText(str);
연결해 주고 보여주기
+
Button이나 text 연결할 때
et_test=findViewById(R.id.et_test);
이런 거에서 에러 뜨면 Alt+Enter하기.
@SuppressLint("MissingInflatedId")
등록됨.
코드
//<Activity_main.xml>
<?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>
//<MainActivity.java>
package com.example.intentexample;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private Button btn_move;
private EditText et_test;
private String str;
@SuppressLint("MissingInflatedId")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //main이랑 연결
et_test=findViewById(R.id.et_test);
btn_move=findViewById(R.id.btn_move); //아이디를 찾아와라
btn_move.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
str = et_test.getText().toString();//toString으로 변환해줘야 함.
Intent intent = new Intent(MainActivity.this, SubActivity.class);
intent.putExtra("str",str); //subExtra로 쏜다
startActivity(intent); //액티비티 이동
}
});
}
}
//activity_sub.xml
<?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>
//SubActivity.java
package com.example.intentexample;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
public class SubActivity extends AppCompatActivity {
private TextView tv_sub;
@SuppressLint("MissingInflatedId")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub);
tv_sub = findViewById(R.id.tv_sub);
Intent intent = getIntent(); // Intent로 날라오는 값 있으면 받겠다
String str = intent.getStringExtra("str"); //안에 담겨짐 별명은 같아야 함.
tv_sub.setText(str);
}
}
결과

728x90
'[Android Studio] (Java)' 카테고리의 다른 글
| [Android Studio] (ListView) (0) | 2023.08.24 |
|---|---|
| [Android Studio] (패키지 구조 & 역할) (0) | 2023.08.24 |
| [Android Studio] (ImageView & Toast) (0) | 2023.08.23 |
| [Android Studio] EditText & Button (0) | 2023.08.23 |
| [Android Studio] 프로젝트 생성 & TextView (0) | 2023.08.23 |