복습

안드로이드스튜디오 - 안드로이드 버전 고르기 본문

Android

안드로이드스튜디오 - 안드로이드 버전 고르기

ykm1256 2020. 6. 30. 12:52

안드로이드 버전 고르기

  1. 스위치를 눌러 시작하면 텍스트 뷰와 라디오버튼, 버튼2개가 나오고 라디오 버튼을 누르게 되면 버튼에 따라 이미지가 출력된다. 종료를 누르면 어플이 종료되고, 처음으로를 누르면 스위치를 누르기 전 초기화면으로 돌아간다.

텍스트뷰, 스위치, 라디오그룹, 라디오버튼, 버튼을 사용하여 xml 작성

JAVA 코드

객체 생성 및 위젯 연결

public class MainActivity extends AppCompatActivity {
    TextView text1, text2;
    Switch chkAgree;
    RadioGroup rGroup1;
    RadioButton rOreo,rPie,rQ;
    Button btnFin,btnRe;
    ImageView imgAnd;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setTitle("좋아하는 안드로이드 버전은?");

        text1 = (TextView) findViewById(R.id.Text1);
        chkAgree = (Switch) findViewById(R.id.ChkAgree);

        text2 = (TextView)findViewById(R.id.Text2);
        rGroup1 = (RadioGroup)findViewById(R.id.RGroup1);
        rOreo = (RadioButton)findViewById(R.id.Roreo);
        rPie = (RadioButton)findViewById(R.id.Rpie);
        rQ = (RadioButton)findViewById(R.id.RQ);

        btnFin = (Button) findViewById(R.id.btnFin);
        btnRe = (Button) findViewById(R.id.btnRe);
        imgAnd = (ImageView) findViewById(R.id.ImgAnd);

        
  • 사용한 위젯의 객체를 생성하고 onCreate메서드 안에서 findViewById메서드로 id를 이용하여 자바코드와 위젯을 연결한다

 

'시작함' 스위치 이벤트

        chkAgree.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
                if(chkAgree.isChecked() == true){
                    text2.setVisibility(View.VISIBLE);
                    rGroup1.setVisibility(View.VISIBLE);
                    btnFin.setVisibility(View.VISIBLE);
                    btnRe.setVisibility(View.VISIBLE);
                    imgAnd.setVisibility(View.VISIBLE);
                } else {
                    text2.setVisibility(View.INVISIBLE);
                    rGroup1.setVisibility(View.INVISIBLE);
                    btnFin.setVisibility(View.INVISIBLE);
                    btnRe.setVisibility(View.INVISIBLE);
                    imgAnd.setVisibility(View.INVISIBLE);
                }
            }
        });
  • onCheckedChanged()메서드를 이용하여 스위치가 눌러지면 아래의 텍스트, 라디오버튼, 버튼, 이미지뷰 등이 Visible 속성으로 바뀌게 하였다.

라디오 버튼 이벤트

        rGroup1.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                switch (rGroup1.getCheckedRadioButtonId()){
                    case R.id.Roreo:
                        imgAnd.setImageResource(R.drawable.oreo);
                        break;

                    case R.id.Rpie:
                        imgAnd.setImageResource(R.drawable.pie);
                        break;

                    case R.id.RQ:
                        imgAnd.setImageResource(R.drawable.q10);
                        break;

                }
            }
        });
  • onCheckedChanged() 메서드에서 switch문을 이용하여 getCheckedRadioButtonId()를 이용하여 라디오 버튼의 id에 따라 각각의 이미지가 출력되게 하였다.
  • 라디오 버튼을 클릭하면 이미지뷰에 drawble폴더에 저장되어 있는 해당 사진들이 setImageResouce로 설정되어 화면에 출력된다.

종료, 리셋 버튼

        btnFin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                finish();
            }
        });

        btnRe.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                text2.setVisibility(View.INVISIBLE);
                rGroup1.setVisibility(View.INVISIBLE);
                btnFin.setVisibility(View.INVISIBLE);
                btnRe.setVisibility(View.INVISIBLE);
                imgAnd.setVisibility(View.INVISIBLE);
                rOreo.setChecked(false);
                rPie.setChecked(false);
                rQ.setChecked(false);
                chkAgree.setChecked(false);
            }
        });
  • OnClickListener를 이용하여 종료버튼을 누르면 finish()메서드를 호출하여 어플이 종료된다.
  • 마찬가지로 처음으로 버튼을 누르면 스위치 아래의 텍스트,라디오버튼, 버튼 등이 INVISIBLE 속성으로 바뀌어 보이지 않게 되고 모든 라디오버튼이 체크가 해제된다.
  • 마지막으로 스위치도 체크가 해제되어 처음의 화면으로 돌아간다.