티스토리 뷰



이 자료들은 팁스소프트에서 제공하는 [ 알짜배기 ] 프로그램을 이용하면 더 편리하게 볼수 있습니다.
* 알짜배기 프로그램 받기 - http://www.tipssoft.com/bulletin/tb.php/QnA/8406
* 안드로이드 강좌 목록 - http://www.tipssoft.com/bulletin/tb.php/old_bbs/501
이번 강좌에서는 에디트텍스트(EditText)를 만드는 방법과 에디트텍스트를 사용하는 예제에 대해서
소개하도록 하겠습니다.
1. 에디트텍스트 만들기
아래의 예제는 에디트텍스트를 리소스 파일에서 구성하는 간단한 XML 코드입니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText
android:id="@+id/id_edit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="EDIT!!"
/>
</LinearLayout>
위의 에디트텍스트는 id_edit 이라는 ID 를 사용하고, 부모 윈도우의 너비에 상응하는 너비와 출력되는
글자를 포함할 만큼의 높이를 가지며 "Edit!!" 라는 문자열을 출력하도록 생성되었습니다. 이렇게
구성된 리소스 파일은 다음과 같은 소스 코드를 이용하여 그대로 응용 프로그램에 출력되도록 할
수 있습니다.
public class ExamEditAppActivity extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
< 실행 화면 >
2. 에디트텍스트 사용하기
에디트텍스트는 일반적으로 사용자로부터 데이터를 입력받기 위하여 사용하는 컨트롤입니다.
그래서 에디트텍스트가 제공하는 기능들 중에서 입력받은 문자열에 얻어오거나 특정 데이터를
사용자가 편집할 수 있도록 에디트텍스트에 출력해주는 기능을 주로 사용합니다.
에디트텍스트의 사용법을 알아보기 위해서 버튼을 눌렀을 때 상단의 에디트텍스트에서 하단의
에디트텍스트로 값을 전달하는 예제를 구성해보도록 하겠습니다. 예제의 리소스 코드는 다음과
같습니다.
<?xml version="1.0" encoding="utf-8"?>
<!--주석 : 세로로 정렬하는 레이아웃을 구성한다.-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<!--주석 : 상단 에디트텍스트를 구성한다.-->
<EditText
android:id="@+id/id_up_edit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="UP EDIT!!"
/>
<!--주석 : 중앙에 버튼이 가로로 배열될 수 있도록 레이아웃을 구성한다.-->
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
<!--주석 : 버튼이 수평을 기준으로 중앙으로 정렬된다. 해당 속성을 설정하려면
layout_width 가 fill_parent 값을 가지면 안된다.-->
android:layout_gravity="center_horizontal"
>
<Button
android:id="@+id/id_up_button"
<!--주석 : 버튼의 너비를 절대 값으로 명시한다.-->
android:layout_width="50pt"
android:layout_height="wrap_content"
android:text="to up!!"
<!--주석 : 버튼을 클릭하면 소스코드의 onClickToUpButton 메소드가 호출된다.-->
android:onClick="onClickToUpButton"
/>
<Button
android:id="@+id/id_down_button"
android:layout_width="50pt"
android:layout_height="wrap_content"
android:text="to down!!"
<!--주석 : 버튼을 클릭하면 소스코드의 onClickToDownButton 메소드가 호출된다.-->
android:onClick="onClickToDownButton"
/>
</LinearLayout>
<!--주석 : 하단 에디트텍스트를 구성한다.-->
<EditText
android:id="@+id/id_down_edit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="DOWN EDIT!!"
/>
</LinearLayout>
두개의 버튼을 클릭했을 때 발생하는 이벤트의 처리는 리스너를 등록하지 않고, 리소스 코드에서
Button 의 android:onClick 속성에 메소드 명을 입력하여 소스 코드에 해당 메소드 명으로 코드를
구성하는 방식을 사용하겠습니다.
package com.example.examedit;
import android.app.Activity;
import android.os.Bundle;
import android.view.View; // 버튼의 이벤트처리 메소드에서 넘어오는 View 를 사용하기위해 추가
import android.widget.Button; // 버튼 클래스를 사용하기 위해 추가
import android.widget.EditText; // 에디트텍스트 클래스를 사용하기 위해 추가
import android.text.Editable; // 에디트의 문자열을 저장하는 데이터 클래스를 사용하기 위해 추가
public class ExamEditAppActivity extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
// "to up" 버튼을 눌렀을 때 호출되는 메소드
public void onClickToUpButton(View view)
{
// 리소스 파일에 정의된 is_up_edit 와 is_down_edit 라는 ID의 에디트텍스트를 얻어온다.
EditText up_edit = (EditText) findViewById(R.id.id_up_edit);
EditText down_edit = (EditText) findViewById(R.id.id_down_edit);
// 하단의 에디트텍스트에 적혀있는 문자열을 getText() 메소드를 호출하여
// Editable 클래스 형태로 얻어온다.
Editable data = down_edit.getText();
// 상단의 에디트텍스트에 얻어온 값을 설정한다.
up_edit.setText(data);
}
// "to down" 버튼을 눌렀을 때 호출되는 메소드
public void onClickToDownButton(View view)
{
// 리소스 파일에 정의된 is_up_edit 와 is_down_edit 라는 ID의 에디트텍스트를 얻어온다.
EditText up_edit = (EditText) findViewById(R.id.id_up_edit);
EditText down_edit = (EditText) findViewById(R.id.id_down_edit);
// 상단의 에디트텍스트에 적혀있는 문자열을 getText() 메소드를 호출하여
// Editable 클래스 형태로 얻어온다.
Editable data = up_edit.getText();
// 하단의 에디트텍스트에 얻어온 값을 설정한다.
down_edit.setText(data);
}
}
< 실행 화면 >


댓글