package com.example.ex_0708;
import androidx.appcompat.app.AppCompatActivity;
import androidx.constraintlayout.widget.ConstraintLayout;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
// 1. 사용하고자 하는 View 선언하기!
ConstraintLayout layout;
Button btn_change;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 3. 선언된 view에 대한 id값 가져오기
layout = findViewById(R.id.layout);
btn_change = findViewById(R.id.btn_change);
}
// 2. OnClick시 호출될 메소드 생성하기
public void change(View view){
// 버튼이 클릭되면 배경색 변경하기
layout.setBackgroundColor(Color.parseColor("#66CCFF"));
}
}
<방식1>
package com.example.ex_0708;
import androidx.appcompat.app.AppCompatActivity;
import androidx.constraintlayout.widget.ConstraintLayout;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
// 클래스에 event를 구현하기 위해서 필요한 작업!
// 1. View.OnclickListener 구현!
// - OnClick() 추상메소드 생성 필수!
public class MainActivity2 extends AppCompatActivity implements View.OnClickListener {
ConstraintLayout layout;
Button btn_r, btn_g, btn_b;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
layout = findViewById(R.id.layout);
btn_r = findViewById(R.id.btn_r);
btn_g = findViewById(R.id.btn_g);
btn_b = findViewById(R.id.btn_b);
// 각각에 버튼에 OnClick 이벤트 연결하기
btn_r.setOnClickListener(this); // 빨강
btn_g.setOnClickListener(this); // 초록
btn_b.setOnClickListener(this); // 파랑
}
@Override
public void onClick(View view) {
// 이벤트가 작동되어야 하는 버튼 판단하기!
if(view.getId() == R.id.btn_r){
layout.setBackgroundColor(Color.RED);
}else if(view.getId() == R.id.btn_g){
layout.setBackgroundColor(Color.GREEN);
}else{
layout.setBackgroundColor(Color.BLUE);
}
}
}
<방식2>
package com.example.ex_0708;
import androidx.appcompat.app.AppCompatActivity;
import androidx.constraintlayout.widget.ConstraintLayout;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity2 extends AppCompatActivity {
ConstraintLayout layout;
Button btn_r, btn_g, btn_b;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
layout = findViewById(R.id.layout);
btn_r = findViewById(R.id.btn_r);
btn_g = findViewById(R.id.btn_g);
btn_b = findViewById(R.id.btn_b);
// 익명클래스 방식으로 각 버튼별 이벤트 걸기!
btn_r.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
layout.setBackgroundColor(Color.RED);
}
}); // 이벤트가 끝나는 영역
btn_g.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
layout.setBackgroundColor(Color.GREEN);
}
});
btn_b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
layout.setBackgroundColor(Color.BLUE);
}
});
}
}
<버튼 클릭시 작성한 글자로 바뀌는 예시>
package com.example.ex_0708;
import androidx.appcompat.app.AppCompatActivity;
import androidx.constraintlayout.widget.ConstraintLayout;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity3 extends AppCompatActivity {
Button btn_txt;
TextView txt_out;
EditText txt_input;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
btn_txt = findViewById(R.id.btn_txt);
txt_input = findViewById(R.id.txt_input);
txt_out = findViewById(R.id.txt_out);
btn_txt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 1. 입력되어 있는 텍스트값 가져오기!
String msg = String.valueOf(txt_input.getText());
// 2. 가져온 텍스트 띄워주기!
txt_out.setText(msg);
// 3. 입력 이후 txt_input 초기화 시키기
txt_input.setText("");
}
});
}
}
<버튼 클릭한 경우 이미지 보이기 예시>
package com.example.ex_0708;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity4 extends AppCompatActivity {
ImageView img;
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main4);
img = findViewById(R.id.img);
btn = findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(img.getVisibility() == view.VISIBLE){
img.setVisibility(view.INVISIBLE); // view 숨기기
btn.setText("VISIBLE");
}else{
img.setVisibility(view.VISIBLE); // view 띄우기
btn.setText("INVISIBLE");
}
}
});
}
}
< 버튼클릭시 사진 넘어감>
package com.example.ex_0708;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity5 extends AppCompatActivity {
ImageView img_view;
Button btn_pre, btn_next;
// 연속적으로 변경되는 이미지들을 관리하기 위하여 배열 사용!
// 안드로이드는 파일을 id값을 정수형의 상수로 가질 수 있다! -> int[] 생성
int [] arr = {R.drawable.photo1, R.drawable.photo22, R.drawable.photo333, R.drawable.photo4444};
// 이미지의 인덱스 번호를 기억할 수 있는 변수
int index = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main5);
img_view = findViewById(R.id.img_view);
btn_pre = findViewById(R.id.btn_pre);
btn_next = findViewById(R.id.btn_next);
// 이전으로 넘어가는 버튼
btn_pre.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(index == 0 ){
index = arr.length-1;
} else{
index--;
}
img_view.setImageResource(arr[index]);
}
});
// 다음으로 넘어가는 버튼
btn_next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 마지막 인덱스[3] -> [0]으로 돌아갈수 있도록 지정하기!
if (index == arr.length-1){
index = 0;
}else{
index++;
}
img_view.setImageResource(arr[index]);
}
});
}
}
'안드로이드' 카테고리의 다른 글
1~45 랜덤 게임 (0) | 2022.07.12 |
---|---|
주사위 게임 (0) | 2022.07.08 |
Event (0) | 2022.07.07 |
레이아웃(Layout) (0) | 2022.07.07 |
안드로이드 개념 (0) | 2022.07.06 |