프로그래밍/안드로이드

안드로이드 Listener의 이해, 버튼을 누르면 Text가 바뀐다

가카리 2012. 8. 15. 19:25
반응형

이번에는 버튼이 눌리면 글자가 바뀌는 간단한 어플을 만들어봅시다.

 

이때 필요한 것은 리스너라는 것인데 리스너는 귀를 귀울이다라는 뜻으로 생각하면 됩니다.

 

자세한 건 소스에 있습니다.

 

 

 

activity_main.xml

 

<LinearLayout

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

    xmlns:tools="http://schemas.android.com/tools"

        android:layout_width="fill_parent"

        android:layout_height="fill_parent"

        android:gravity="center_horizontal"

        android:orientation="vertical"

      >

      <TextView

          android:id="@+id/fruit"

          android:layout_width="wrap_content"

                       android:layout_height="wrap_content"

                       android:textColor="#ffff00"

                       android:textSize="20pt"

                       android:text="과일"

     >  

      </TextView>

   

           <LinearLayout

               android:layout_width="wrap_content"

                     android:layout_height="fill_parent"

                     >

               <Button

                   android:id="@+id/apple"

                   android:layout_width="wrap_content"

                   android:layout_height="wrap_content"

                   android:text="Apple"

                   >

               </Button>

               <Button

                   android:id="@+id/orange"

                   android:layout_width="wrap_content"

                   android:layout_height="wrap_content"

                   android:text="Orange"

                   >

               </Button>

              

           </LinearLayout>   

    </LinearLayout>

 

 

MainActivity.java

 

package com.example.fruit;

 

import android.os.Bundle;

import android.app.Activity;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.TextView;

 

public class MainActivity extends Activity {

 

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

   

        Button btnApple=(Button)findViewById(R.id.apple);

        btnApple.setOnClickListener(mListener);//리스너등록

        Button btnOrange=(Button)findViewById(R.id.orange);

        btnOrange.setOnClickListener(mListener);

    }

  

    OnClickListener mListener = new OnClickListener() {//리스너 인터페이스를 정의를함.

                    

         //리스너는 인터페이스이므로 추상메소드를 반드시 정의해줘야됨.

         //onClick 메소드를 정의함

                     @Override

                     public void onClick(View v) {

                                // TODO Auto-generated method stub

                                TextView textFruit=(TextView)findViewById(R.id.fruit);

                                switch(v.getId()){

                                case R.id.apple://apple버튼이 눌렸을 때

                                          textFruit.setText("Apple");

                                          break;

                                case R.id.orange://orange 버튼이 눌렸을 때

                                          textFruit.setText("Orange");

                                          break;

                                }

                               

                     }

           };

 

}

 

리스너 등록방법이 이외에도 여러가지가 있는데 이 방법이 저는 가장 편해서 즐겨 사용합니다.

 

결과화면