초보자가 android studio를 사용해 보는 그 2(이벤트 처리)

안드로이드 앱으로 이벤트 처리



다음으로 안드로이드 스튜디오에서 간단한 이벤트 처리 앱을 만들어 보겠습니다.
Hello World 앱에 대해서는 아래를 참조하십시오.

초보자가 android studio를 사용해 보는 그 1(Hello World)

android studio 시작



먼저 android studio를 시작하고 Empty Activity로 프로젝트를 새로 작성하십시오.



동작 화면



동작 결과는 이런 느낌.
입력란에 문자를 입력하고 송신 버튼을 누르면 출력란에 문자가 표시됩니다.





이벤트 측 코딩



버튼을 누를 때의 동작 등을 기술합니다.

MainActivity.java

package com.example.personal.sample_1_event;

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

public class MainActivity extends AppCompatActivity {

    //オブジェクト
    private Button   btnSend;
    private TextView textInput;
    private TextView textOutput;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //レイアウト読み込み
        setContentView(R.layout.activity_main);

        //オブジェクト取得
        btnSend    = findViewById(R.id.btnSend);
        textInput  = findViewById(R.id.textInput);
        textOutput = findViewById(R.id.textOutput);

        /////////////////////////////////////////////////////////////////////
        //  リスナ
        /////////////////////////////////////////////////////////////////////

        //ボタン
        btnSend.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                //テキスト取得
                //CharSequence text = textInput.getText();
                String text = textInput.getText().toString();

                //テキスト設定
                textOutput.setText(text);
            }
        });

    }

}

화면에서 사용할 문자열 코딩



화면에서 사용하는 문자열은 strings.xml에 등록합니다.
화면에 직접 문자열을 작성하는 대신 textBtnSend 등의 변수를 입력합니다.

strings.xml

<resources>
    <string name="app_name">Sample_1_event</string>

    <!-- 追記 -->
    <string name="textBtnSend"        >送信</string>
    <string name="textTextLabelInput" >入力</string>
    <string name="textTextLabelOutput">出力</string>
    <string name="textTextInput"      >Input</string>
    <string name="textTextOutput"     >Output</string>

</resources>

화면 측 코딩



기본적으로 직접 코딩은 하지 않습니다(라고 생각합니다).
텍스트 필드나 버튼 등의 파트를 드래그&드롭으로 배치해 갑니다.
배치 후의 화면은 이런 느낌.



부품의 배치 방법
1. 버튼 등을 선택한다.
2. 드래그 앤 드롭으로 화면에 배치합니다.
3. 배치한 부품 선택
4. 화면 오른쪽 상단의 ID 입력(고유)
5. ID 아래 위치의 + 버튼을 눌러 기준 위치를 결정합니다.
   →여기에서는 좌벽, 상벽 기준.
6. TextView -> text에서 strings.xml에 등록한 변수를 입력합니다.

일단 소스도 올려 둡니다.

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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"
    tools:context=".MainActivity"
    tools:layout_editor_absoluteY="81dp">

    <Button
        android:id="@+id/btnSend"
        android:layout_width="@dimen/btnSendWidth"
        android:layout_height="@dimen/btnSendHeight"
        android:layout_marginLeft="40dp"
        android:layout_marginStart="40dp"
        android:layout_marginTop="45dp"
        android:text="@string/textBtnSend"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textOutput" />

    <TextView
        android:id="@+id/textLabelInput"
        android:layout_width="40dp"
        android:layout_height="20dp"
        android:layout_marginLeft="40dp"
        android:layout_marginStart="40dp"
        android:layout_marginTop="50dp"
        android:text="@string/textTextLabelInput"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/textLabelOutput"
        android:layout_width="40dp"
        android:layout_height="20dp"
        android:layout_marginLeft="40dp"
        android:layout_marginStart="40dp"
        android:layout_marginTop="40dp"
        android:text="@string/textTextLabelOutput"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textLabelInput" />

    <EditText
        android:id="@+id/textInput"
        android:layout_width="150dp"
        android:layout_height="40dp"
        android:layout_marginLeft="20dp"
        android:layout_marginStart="20dp"
        android:layout_marginTop="40dp"
        android:ems="10"
        android:hint="@string/textTextInput"
        android:inputType="textPersonName"
        android:text=""
        app:layout_constraintStart_toEndOf="@+id/textLabelInput"
        app:layout_constraintTop_toTopOf="parent" />

    <EditText
        android:id="@+id/textOutput"
        android:layout_width="150dp"
        android:layout_height="40dp"
        android:layout_marginLeft="20dp"
        android:layout_marginStart="20dp"
        android:layout_marginTop="20dp"
        android:ems="10"
        android:hint="@string/textTextOutput"
        android:inputType="textPersonName"
        android:text=""
        app:layout_constraintStart_toEndOf="@+id/textLabelOutput"
        app:layout_constraintTop_toBottomOf="@+id/textInput" />

</android.support.constraint.ConstraintLayout>

좋은 웹페이지 즐겨찾기