본문 바로가기
프로그래밍/안드로이드

안드로이드 버튼 클릭, 화면 이동

by -현's- 2015. 3. 6.
반응형


●버튼을 클릭하면 메세지가 나오는 예제


MainActivity.java

package com.example.project


import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.Toast;


//사용자가 위젯에 이벤트를 발생시킬때, 이러한 이벤트를 click이벤트라 하고, 이 이벤트가 발생했을때 어떤 내용의

//구현을 할지는 개발자의 몫이기 때문에, 내용이 불완전한 인터페이스 객체가 전달된다!

public class MainActivity extends Activity implements OnClickListener {  

//클릭 이벤트를 사용하려면 implements OnClickListener를 사용해야한다.


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//xml화면이 보여지게됨

setContentView(R.layout.ex9);

//이벤트 구현의 대상이 되는 위젯을 명시하기

Button btn1 = (Button)findViewById(R.id.btn1);

//버튼 클릭시 이벤트 발생

btn1.setOnClickListener(this);

}

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Toast.makeText(this, "클릭되었습니다.", Toast.LENGTH_SHORT).show();

}

}

 



- ex.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical"

    android:gravity="center" >

    

    <!-- 아이디는 한xml당 id값이 중복되지만 않으면 된다. -->

    <Button 

        android:id="@+id/btn1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="클릭"/>

    

    

    

</LinearLayout>











●버튼을 클릭하면 화면이 이동하는 예제

액티비티를 추가하면 매니페스트에 액티비티를 추가해야한다.

앱이 실행되면 <intent-filter>가 있는 액비티비가 먼저 실행된다. 먼저 화면에 띄울 액티비티 안에 <intent-filter>를 넣어준다.


- AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.example.day0228"

    android:versionCode="1"

    android:versionName="1.0" >


    <uses-sdk

        android:minSdkVersion="14"

        android:targetSdkVersion="21" />


    <application

        android:allowBackup="true"

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name"

        android:theme="@style/AppTheme" >

        <activity

            android:name=".MainActivity"

            android:label="@string/app_name" >

        </activity>

        

        <!-- 액티비티 추가하면 여기에 선언해야한다 -->

        <activity 

            android:name="study.activity.ActivityA">

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />


                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

        

        <activity

            android:name="study.activity.ActivityB">

        </activity>

      

    </application>


</manifest>

 



-a.xml

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:id="@+id/RelativeLayout1"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical" >

    

    <Button 

        android:id="@+id/btn_move"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="다른 화면 이동"/>

    

</RelativeLayout>




- ActivityA.java

package study.activity;


import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;


import com.example.day0228.R;


public class ActivityA extends Activity implements OnClickListener{

//액티비티 클래스가 최초에 실행될때 메모리에 올라오는 순간, 아래의 onCreate 메서드가 자동으로 호출된다.

//따라서 개발자는, 화면이 최초에 앱 가동에 의해 보여질때 하고 싶은 코드를 작성하면 된다.

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//xml에 명시된 태그를 해석하여 실제 위젯으로 생성 및 메모리에 올리는 과정을 임플레이션이라 한다.

setContentView(R.layout.a);

//이미 메모리에 올라온 버튼을 제어하기 위해, findViewById라는 메서드로 버튼을 지적한다.

Button btn_move = (Button)findViewById(R.id.btn_move);

btn_move.setOnClickListener(this);

}


@Override

public void onClick(View v) {

//다른 액티비티 호출

//this는 현재 클래스

Intent intent = new Intent(this, ActivityB.class);

startActivity(intent);

}

}






- b.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical"

    android:background="#ffdd00"

    android:gravity="center" >

    

    <Button 

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="닫기"/>

    

</LinearLayout>






- ActivityB.java

package study.activity;


import com.example.day0228.R;


import android.app.Activity;

import android.os.Bundle;


public class ActivityB extends Activity{

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.b);

}

}

 













반응형

댓글