반응형

Ex02Widget

안드로이드 네이티브 앱 개발 수업 예제#2

 

주요코드

Button 클릭 이벤트를 통해 TextView의 글씨변경 및 EditText를 통한 사용자 입력

  • res폴더>>layout폴더안에 있는 activity_main.xml문서를 수정하여 화면제작
  • 버튼을 클릭하였을 때 사용자가 EditText를 통해 입력한 글씨를 얻어와서 TextView의 글씨를 변경해보기
  • 안드로이드 이벤트처리 기법을 알아보는 예제로서 리스너객체에 대한 이해 및 활용

실행모습

1. 초기화면,    2.EditText에 글씨 입력화면,      3. 버튼 클릭시에 EditText의 글씨를 TextView에서 보여주는 화면

 

 

실행모습 GIF

 

 

 

 

소스코드

 

# 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"
    android:padding="16dp"
    tools:context=".MainActivity">

    <!--텍스트뷰의 글씨나 속성을 변경하는 등의 제어를 하려면 .java에서 이 텍스트뷰를 참조해야함-->
    <!--참조하려면 반드시 View들은 id속성을 가지고 있어야함.- View를 구별하는 식별자 -->
    <TextView
        android:id="@+id/tv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Hello"
        android:textSize="40sp"
        android:textStyle="bold"
        android:gravity="center_horizontal"/>

    <!--버튼에 text속성으로 글씨를 지정하면 자동으로 대문자로 보여짐-->
    <!--textAllCaps속성으로 대문자로 할지 여부 지정 [true/false]-->
    <Button
        android:id="@+id/btn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button"
        android:textAllCaps="false"/>
    <!-- 먼저 작성하고 버튼클릭시에 텍스트뷰의 글씨 변경 연습. MainActivity.java에서 코드작성-->
    <!-- 연습 완료 후 사용자로 부터 글씨를 입력받을 수 있는 EditText 뷰를 추가-->

    <!-- 사용자로부터 글씨를 입력받을 수 있는 뷰-->
    <!-- hint : 글씨를 입력하기 전에 회색으로 보여지는 힌트글씨 지정 - 글씨를 입력하면 자동으로 안보임 -->
    <EditText
        android:id="@+id/edit"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="input text"
        android:textSize="20sp"/>

</LinearLayout>

 

# MainActivity.java
package com.kitesoft.ex02widget;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    //멤버변수
    TextView tv; //참조변수
    Button btn;
    EditText edit;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //xml에서 만들어진 View객체를 id로 찾아와서 참조변수에 대입
        tv= findViewById(R.id.tv);
        btn= findViewById(R.id.btn);
        edit= findViewById(R.id.edit);

        //버튼이 클릭되는 것을 듣는 리스너객체 생성 및 추가
        btn.setOnClickListener(new View.OnClickListener() {

            //버튼을 클릭하면 자동으로 실행되는 콜백메소드
            @Override
            public void onClick(View view) {
                //EditText에 써있는 글씨를 얻어오기.
                Editable editable= edit.getText();
                String s= editable.toString();

                //얻어온 글씨를 TextView에 설정
                tv.setText(s);
            }
        });

    }

}

 


 

 

 

 

kitesoft2058/Ex02Widget

안드로이드 네이티브 앱 개발 수업 예제#2. Contribute to kitesoft2058/Ex02Widget development by creating an account on GitHub.

github.com

 

반응형

+ Recent posts