입력상자는 사용자의 입력을 받는 역할을 한다.

<?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">

    <EditText
        android:id="@+id/userNameInput"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="24dp"
        android:inputType="textCapWords"
        android:hint="이름을 입력하세요"
        android:layout_marginTop="20dp"
        android:background="#11000000"/>

    <EditText
        android:id="@+id/userAgeInput"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="24dp"
        android:inputType="number"
        android:hint="나이를 입력하세요"
        android:layout_marginTop="10dp"
        android:background="#11000000"/>

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="제출"
        android:textSize="24dp"
        android:layout_marginTop="20dp"/>

</LinearLayout>

2개의 입력상자와 1개의 버튼을 넣었다.

hint 속성은 사용자에게 어떤 것을 입력해야할 지 알려주는 역할을 하는데, 입력상자를 클릭하면 사라진다. 그리고 inputType 속성으로 입력할 텍스트의 종류를 알 수 있다. textCapWords는 영어나 한글 같은 키패드를 띄워주고, number를 값으로 주면 숫자를 입력하기 편리하도록 알아서 키패드를 띄워준다.

간단한 앱을 만들어보자.

package io.swnomad.samplewidget;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    EditText userNameInput;
    EditText userAgeInput;
    Button button;

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

        /* XML 레이아웃에 정의 된 뷰 객체 참조 */
        userNameInput = findViewById(R.id.userNameInput);
        userAgeInput = findViewById(R.id.userAgeInput);
        button = findViewById(R.id.button);

        /* 버튼 클릭 이벤트 발생 시 처리부 코드 */
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                /* 입력상자의 문자열 읽어와 저장 */
                String name = userNameInput.getText().toString();
                int age = Integer.valueOf(userAgeInput.getText().toString());

                String str = "이름 : " + name + "   나이 : " + age;
                Toast.makeText(getApplicationContext(), str, Toast.LENGTH_LONG).show();
            }
        });
    }
}

버튼을 클릭하면 입력상자의 내용을 읽어와 토스트 메시지로 띄워주는 간단한 기능을 만들어보았다. getText() 메소드를 사용하면 입력상자의 내용을 읽어올 수 있다. 앱을 실행하면 다음과 같은 화면이 나온다.

1
2
3

실제로 두 입력상자의 inputType 속성을 어떻게 설정했느냐에 따라 다른 모양의 키패드를 띄워주는 것을 확인할 수 있다.

+ Recent posts