유디의 공간정보·개발일기

4. 0712_ hint, if-else문으로 이미지 설정, ArrayList 본문

JAVA + Android Studio

4. 0712_ hint, if-else문으로 이미지 설정, ArrayList

55yudi 2021. 10. 24. 12:35

- hint : 설명창/설명글

 

- System.out.println( ); 대신

binding.output1.setText( );

 

- build.gradle 설정, main에 binding 설정 완료하기

 

- guidelines

 

- containers - Horizontal ScrollView

 

- layout을 container로 설정해서 이미지 보이게 하기

  * createCat 함수 만들기

public void createCat() {
    Cat cat1 = new Cat(name);
    cats.add(cat1);

  * Layout에 imageView 코드로 만들기

public void createCat() {
	Cat cat1 = new Cat(name);
	cats.add(cat1);

				//여기서 this : 화면 = context
	ImageView imageView = new ImageView(this);
	imageView.setImageResource(R.drawable.cat);
	binding.container.addView(imageView); //버튼 등을 넣을 수 있음

 


- Dog class, Cat class 만들기

public class Dog {
  String name;

  Dog(String name) {
  this.name = name;
  }
}
public class Cat {
  String name;

  Cat(String name) {
  this.name = name;
  }
}

 

- Dog, Cat의 ArrayList 2개 만들기

ArrayList<Dog> dogs = new ArrayList<Dog>();
ArrayList<Cat> cats = new ArrayList<Cat>();

- 새 객체가 생성될 때마다 ArrayList에 넣어줌

 

 

- main함수 밖에 함수 만들기

- 버튼이 클릭되면 실행됨

binding.실행시킬 버튼id.setOnClickListener(new View.OnClickListener() {
	@override //...//
	public void onClick(View v) {
		createDog();
	}
});

- createDog( ) 코드

public void createDog() {
    String name = binding.input1.getText().toString(); // input1 : 텍스트 나올 곳 id
    Dog dog1 = new Dog(name);
    dogs.add(dog1);

    //size() 는 갯수를 적어준다.
    int count = dogs.size();
    if (count == 1) {
   		 binding.output1.setImageResource(R.drawble.dog); // output1 : 이미지 나올 곳 id
    } else if (count == 2) {
    	binding.output2.setImageResource(R.drawble.dog);
    } else if (count == 3) {
    	binding.output3.setImageResource(R.drawble.dog);
    } else if (count == 4) {
    	binding.output4.setImageResource(R.drawble.dog);
    } else if (count == 5) {
    	binding.output5.setImageResource(R.drawble.dog);
    }
}

- createCat 함수도 마찬가지로 작성한다.