(Android Studio) 버튼을 눌러 텍스트 및 이미지 변경하기 (OnClick() 사용)

sTaedy·2022년 3월 12일
0

모바일앱

목록 보기
1/1

Android Studio를 통해 버튼을 2개 생성하고, 하나의 버튼(btn1)을 누르면 '학번'과 '이름'이 번갈아 가면서 나오고, 또 다른 버튼(btn2)을 누르면 3개의 그림이 변경되어 출력되는 과제

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.ImageView;

import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

int i = 0;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

TextView textview = (TextView) findViewById(R.id.textView1);

ImageView imgview = (ImageView) findViewById(R.id.imageView);

Button button1 = (Button) findViewById(R.id.button);

Button button2 = (Button) findViewById(R.id.button2);

button1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

i = i % 2;

if(i == 0){

textview.setText("학번");

}

if(i==1) {

textview.setText("이름");

}

i++;

}

});

button2.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

int index = i % 3;

if( index ==0) {

imgview.setImageResource(R.drawable.beef);

}

if(index == 1) {

imgview.setImageResource(R.drawable.pizza);

}

if(index ==2) {

imgview.setImageResource(R.drawable.chicken);

}

i++;

}

});

}

}

  • 이 과제에서 중요한 점은 'onClickListner()'를 사용한다는 점이었다. onClick()을 통해 버튼을 클릭하여 텍스트 및 이미지를 변경할 수 있기 때문이다.

-이미지 및 텍스트가 바뀌게 하고 싶을 때

int i = 0;

button2.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

int index = i % 3;

if( index ==0) {

imgview.setImageResource(R.drawable.beef);

}

if(index == 1) {

imgview.setImageResource(R.drawable.pizza);

}

if(index ==2) {

imgview.setImageResource(R.drawable.chicken);

}

i++;

  • 개인적으로 제일 중요했다고 생각되는 부분은 3가지 이상의 이미지를 버튼을 클릭할 때 마다 변경하고 싶을 때, int index = i % 3; if ~~ 을 통해 문제를 해결했던 것이 중요한 것 같다.

만약 i = 1-i; if (i==0)~, if(i ==1)로 식을 세운다면, 2번을 클릭한 뒤에는 클릭이 작동하지 않기 때문이다.

(i값이 0미만이 될 때의 상황을 정의해주지 않았기 때문)



'IMAGE'버튼을 클릭하면 그림이 바뀐다.

profile
항상 꾸준하게 노력하기

0개의 댓글