Android

안드로이드 - intent 활용(명시적 인텐트)

로픽 2017. 4. 28. 21:26
300x250

intent 활용(명시적 인텐트)

intent는 보편적으로 다른 화면으로 전환하거나 전환하면서 데이터를 넘기는 역활을 하는 객체입니다.

intent의 경우 명시적/암시적 인텐트가 존재하지만 여기서는 명시적 인텐트 사용입니다.

예시프로그램으로 메인화면에서 서브화면으로 전환하는 것을 보여드릴려고 합니다.

* MainActivity
 
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setTitle("메인화면입니다.");
    }

    public void clickText(View view){
        Intent intent = new Intent(this, subActivity.class);
        TextView textView1 = (TextView) findViewById(R.id.text);
        intent.putExtra("it_name", name);
        this.startActivity(intent);
        this.finish();
    }
}


* 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"
android:orientation="vertical"
tools:context="com.example.middletest.MainActivity">

<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Lopic"
android:onClick="clickText"
android:clickable="true" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2017"
android:textSize="25sp"/>

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="버튼"/>
</LinearLayout>


* subActivity.java

 
public class subActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sub);
        setTitle("서브화면 입니다.");

        Intent sub_intent = this.getIntent();
        String name = sub_intent.getStringExtra("name");
        TextView textView1 = (TextView) findViewById(R.id.textview1);
        textView1.setText("서브에서 전달받은 값: " + name);
    }

    public void clickBatang(View view){
        Intent sub_intent2 = new Intent(this, MainActivity.class);
        this.startActivity(sub_intent2);
        this.finish();
    }
}


* 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"
android:orientation="vertical"
android:onClick="clickBatang"
android:clickable="true"
tools:context="com.example.middletest.subActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textview1"
android:text="서브화면입니다."/>
</LinearLayout>


반응형