Android 여러가지 Button 사용방법
Android/JAVA

Android 여러가지 Button 사용방법

728x90

안녕하세요 오늘은 안드로이드에서 몰라서는 안되는 가장 기본인 Button에 대하여 설명해드리도록 하겠습니다. 

뭐 쓰이는 상황마다 버튼 사용이 다르다곤 하는데 아직 직접적인 경험을 하지 못해서 

제가 알고 있었던 그리고 가장 자주 사용하는 그런 방식에 대하여 설명을 해드리겠습니다. 

 

첫번째 방법은 아마 많은 분들이 사용하고 계실거라 생각합니다. 

 

1. onClickListener를 만들어서 구현하는 방법입니다. 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class MainActivity extends AppCompatActivity {
    TextView textView;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.textView);
        findViewById(R.id.button1).setOnClickListener(onClickListener);
    }
 
    Button.OnClickListener onClickListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            textView.setText("버튼1번 동작입니다.");
 
        }
    };
}
cs

 

findViewById(R.id.button1).setOnClickListener(onClickListener); 

이런식으로 onCreate에 미리 선언을 해줍니다. 

 

onClickListener이라고 setOnclickListener을 정했기 때문에 

Button.OnClickListener onClickListener = new View. 여기까지만 코딩하시면 자연스럽게 onclick 이 만들어 지게 됩니다. 

그러면 저희는 위에서 선언했던 Textview를 사용하여 .setText를 해서 결과 화면을 확인 할 수 있습니다.

 

 

2. View.OnclickListener 사용하기 


두번째 방법은 MainActivity에 OnclickListener를 직접 implements 해주는 방법입니다. 

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

이런식으로 View.OnclickListener 을 implements 해주시고 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    TextView textView;
    Button  button2;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.textView);
        findViewById(R.id.button1).setOnClickListener(onClickListener);
 
        button2 = findViewById(R.id.button2);
        button2.setOnClickListener(this);
    }
 
    Button.OnClickListener onClickListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            textView.setText("버튼1번 동작입니다.");
        }
    };
    public void onClick(View v){
        textView.setText("버튼2번 동작입니다.");
    }
}
cs

 

이런식으로 Button을 선언해주시고 this를 연결시켜주시면 됩니다. 무론 수행 동작은 메소드 내에 작성해주시면 됩니다. 

 

 

 

3. OnclickListener과 동시에 생성하기 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    TextView textView;
    Button  button2;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.textView);
        //첫번째 방법
        findViewById(R.id.button1).setOnClickListener(onClickListener);
 
        //두번째 방법
        button2 = findViewById(R.id.button2);
        button2.setOnClickListener(this);
 
        //세번째 방법
        findViewById(R.id.button3).setOnClickListener(new Button.OnClickListener(){
            @Override
            public void onClick(View v) {
                textView.setText("버튼 3번 동작입니다. ");
 
            }
        });
    }
}
cs

 

 

 

 

4. 마지막은 xml을 이용하는 방법입니다. 

 

제가 가장 많이 사용하기도 하고 가장 간단한 방법이라고 생각합니다.(Fragment 에서는 사용하지 않으시는게 좋습니다. ) 

xml 자체에 onclick을 설정하거나 아니면 activity 내에서 메소드를 만들고 그 메소드 이름을 onclick=""; 과 맞춰 주시면 됩니다.

 

<Button
    android:id="@+id/button4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:onClick="btn4"
    android:text="Button4" />

xml 을 이런식으로 설정 해주시고 

 

//네번째 방법
public void btn4(View v){
    textView.setText("버튼 4번 동작입니다.");
}

onCreate 밖에 메소드를 만들어서 onClick 이름과 맞춰주시기만 하면 버튼이 동작되는 것을 확인할 수 있습니다. 

 

지금까지 버튼 종류와 사용방법에 대해 알아봤는데요 다음에는 FloatingActionButton에 대해 알아보도록 하겠습니다. 

 

밑에는 소스코드 첨부하도록 하겠습니다. 

 

MainActivity.java

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
 
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    TextView textView;
    Button  button2;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.textView);
        //첫번째 방법
        findViewById(R.id.button1).setOnClickListener(onClickListener);
 
        //두번째 방법
        button2 = findViewById(R.id.button2);
        button2.setOnClickListener(this);
 
        //세번째 방법
        findViewById(R.id.button3).setOnClickListener(new Button.OnClickListener(){
            @Override
            public void onClick(View v) {
                textView.setText("버튼 3번 동작입니다. ");
 
            }
        });
    }
    //첫번째 방법
    Button.OnClickListener onClickListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            textView.setText("버튼1번 동작입니다.");
        }
    };
    //두번째 방법
    public void onClick(View v){
        textView.setText("버튼2번 동작입니다.");
    }
    //네번째 방법
    public void btn4(View v){
        textView.setText("버튼 4번 동작입니다.");
    }
}
 
cs

 

activity_main.xml

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?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"
    tools:context=".MainActivity">
 
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="213dp"
        android:layout_weight="1"
        android:orientation="horizontal">
 
        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Button1" />
 
        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Button2" />
 
        <Button
            android:id="@+id/button3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Button3" />
 
        <Button
            android:id="@+id/button4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="btn4"
            android:text="Button4" />
    </LinearLayout>
 
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="vertical">
 
        <TextView
            android:id="@+id/textView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:text="TextView" />
    </LinearLayout>
</LinearLayout>
cs

 

728x90