반응형
안드로이드 타겟 버전 : 4.2(젤리빈)
소스 출처 : https://www.inflearn.com/course/
예제 소스
안드로이드 어플리케이션의 네가지 구성 요소는 Activity, Service, Broadcast Receiver, Content Provider가 있습니다.
인텐트(Intent)란 이러한 어플리케이션 구성요소(컴포넌트) 간에 작업 수행을 위한 정보를 전달하는 역할을 한다. 인텐트를 가장 손쉽게 사용한 예로는 액티비티간의 화면전환을 들 수 있습니다.
- startActivity() -새로운 액티비티를 화면에 띄울 때
- startService(), bindService() – 서비스와 관련
- broadcastIntent() – 브로드캐스팅을 수행할 때
매니페스트 파일에 새로운 액티비티에 대한 정보를 추가해야합니다.
여기서는 SubActivity라는 액티비티에 대한 정보를 추가해줬습니다.
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
package="com.example.kch.tutorial6_activity">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SubActivity">
</activity>
</application>
</manifest>
activity_main.xml
간단히 EditText와 TextView만 있습니다.
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.kch.tutorial6_activity.MainActivity">
<EditText
android:id="@+id/nameText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:hint="name"
android:inputType="textPersonName"
android:text="Name"
android:layout_marginRight="8dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="8dp" />
<Button
android:id="@+id/nameButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Transfer"
android:layout_marginRight="8dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp"
app:layout_constraintTop_toBottomOf="@+id/nameText1"
app:layout_constraintVertical_bias="0.032" />
</android.support.constraint.ConstraintLayout>
activity_sub.xml
TextView 한개만 존재합니다.
<?xml version="1.0" encoding="utf-8"?>
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/nameText2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView"
android:textAppearance="@style/TextAppearance.AppCompat.Display2" />
</LinearLayout>
MainActivity.java
package com.example.kch.tutorial6_activity;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText nameText = (EditText)findViewById(R.id.nameText1);
Button nameButton = (Button)findViewById(R.id.nameButton);
nameButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String name = nameText.getText().toString();//EditText로부터 값을 가져옴
//인텐트 생성
Intent intent = new Intent(getApplicationContext(), SubActivity.class);
intent.putExtra("nameText", name);//값을 넣어줌
startActivity(intent);//다음 액티비티로 이동
}
});
}
}
SubActivity.java
package com.example.kch.tutorial6_activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
/**
* Created by kch on 2017. 9. 24..
*/
public class SubActivity extends AppCompatActivity{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub);
TextView textView = (TextView)findViewById(R.id.nameText2);
Intent intent = getIntent();
textView.setText(intent.getStringExtra("nameText").toString());//가져온 값을 뿌려줌
}
}
실행 화면
다음과 같은 MainActivity에서 이름을 입력해주고 버튼을 눌러봅시다.
다음과 같이 입력한 데이터가 다른 액티비티로 제대로 전송됨을 알 수 있습니다.
'프로그래밍 > 안드로이드' 카테고리의 다른 글
안드로이드 - 프로젝트1. 애플리케이션 화면 디자인 (0) | 2017.10.06 |
---|---|
안드로이드 - 8. 레이아웃(layout) (0) | 2017.10.06 |
안드로이드 - 7. 이미지 버튼 만들기 (0) | 2017.10.03 |
안드로이드 - 6. 유튜브 재생하기 (2) | 2017.10.03 |
안드로이드 - 4. 커스텀 리스트뷰(custom listview) 만들기 (0) | 2017.09.23 |
안드로이드 - 3. 네비게이션 드로어(Navigation Drawer) 사용하기 (8) | 2017.09.23 |
안드로이드 - 2. AlertDialog 사용 예제 (0) | 2017.09.17 |
안드로이드 - 1. 간단한 계산기 만들기 (0) | 2017.09.17 |