본문 바로가기

안드로이드 스튜디오

#2 버튼 & EditText

안드로이드 스튜디오

- Button & EditText -


다음으로 앱에서 가장 많이 쓰이는 위젯 중 하나인 버튼(Button)

아이디입력, 비밀번호입력 등 사용자에게 텍스트를 입력받을 수 있는 EditText를 알아보자


[ Button ]


버튼도 전에 배웠던 TextView와 마찬가지로 위젯 중 하나이므로 activity.xml의 design 탭에서 드래그하여

나타낼 수 있고, Text탭에서 다음과 같이 직접 타이핑하여 만들 수도 있다.

<Button
android:id="@+id/btn_test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="button"/>

여기서 android:text = "button" 은 버튼 위에 텍스트를 넣은 모습이다.

 (그럼 다음과 같이 버튼이 생성된다.)

그리고 중요한 점은 바로 윗줄의 android:id="@+id/btn_test" 이 문구이다.

이 문구의 의미는 버튼에 아이디값을 부여한다는 뜻인데 btn_test가 이 버튼의 아이디가 되는 것이다.


그럼 아이디를 왜 부여할까?

바로 버튼에 어떤 명령을 부여하고 싶을 때 .java 파일에서 이 아이디값을 불러와 명령을 부여하기 때문이다.

그래서 굉장히 중요하다.


그럼 예시로 버튼을 누를 때 버튼 위의 텍스트를 변경하는 명령을 부여해보면

MainActivity.java 파일에서 이렇게 코딩해준다.

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

public class MainActivity extends AppCompatActivity {

Button btn_test;

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


btn_test = (Button)findViewById(R.id.btn_test);
btn_test.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
btn_test.setText("텍스트변경!");
}
});
}

먼저 Button btn_test; 로 버튼 btn_test를 선언해주고

btn_test = (Button)findViewById(R.id.btn_test); 이렇게 전에 부여한 아이디값을 가져온다.

(R.id.btn_test에서 R은 resource폴더를 의미한다.)

그 다음 setOnClickListener(new View.OnClickListener() 이 구문이 버튼이 눌렸을 때 어떤 일이 발생되는가를 처리하는

함수가 되겠다.

위 예문에서는 setText로 텍스트를 변경한 것을 알 수 있다.



[ EditText ]


그럼 다음으로 에딧텍스트 위젯을 알아보자.

우리가 흔히보는 아이디입력창과 같은 텍스트입력창이 바로 EditText인데

생성은 앞에서 말한 위젯들과 똑같이 Activity.xml파일에서 만들어주는데 Text탭에서

<EditText
android:id="@+id/et_test"
android:layout_width="100dp"
android:layout_height="wrap_content" />


이렇게 생성할 수 있다.

위 예시에서는 길이 100dp, 높이는 자동으로 크기에 맞춰서 생성하고

아이디값을 et_test라는 아이디를 부여해준 상태이다.


그럼 이 부여한 아이디값을 이용해 전에 만들어둔 버튼이 눌릴 때 EditText에 텍스트가 입력되도록 명령을 부여해보자

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

public class MainActivity extends AppCompatActivity {

EditText et_test;
Button btn_test;
ImageView iv_test;

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

et_test = (EditText)findViewById(R.id.et_test);
btn_test = (Button)findViewById(R.id.btn_test);
btn_test.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
et_test.setText("에딧텍스트!");
}
});
}

앞서 설명한 버튼과 선언과 아이디부여, 사용법은 굉장히 비슷한 것을 알 수 있다.

EditText et_test; 로 먼저 선언한 후

et_test = (EditText)findViewById(R.id.et_test); 로 만들어둔 아이디를 부여해준 뒤

et_test.setText("에딧텍스트!");로 텍스트를 입력해준 것을 볼 수 있다.


이러한 기본기들에 익숙해지고 더 배움으로써 근사한 어플을 만드는 데 밑거름이 될 것이다.

더 열심히 배워보자!