<?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">
<EditText
android:id="@+id/Edit1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="글자 나타내기"
>
</Button>
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="홈페이지 열기"
>
</Button>
<RadioGroup
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:gravity="center"
android:id="@+id/Group1">
<RadioButton
android:id="@+id/maleButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="남성">
</RadioButton>
<RadioButton
android:id="@+id/femaleButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="여성">
</RadioButton>
</RadioGroup>
<ImageView
android:id="@+id/genderImage"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="visible">
</ImageView>
</LinearLayout>
xml 파일 코드. Layout 안에 Layout을 설정 할 수 있다는 것을 배웠다.
package com.example.helloandroid;
import androidx.annotation.IdRes;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
//전역변수를 생성하는 지
TextView Edit1;
Button button1;
Button button2;
RadioGroup Group1;
ImageView genderImage;
@Override
protected void onCreate(Bundle savedInstanceState) { // c에서 main과 같은 역
super.onCreate(savedInstanceState); //항상 가장먼저 시작해야됨
setContentView(R.layout.activity_main); //activity_main.xml을 화면에 표시하라는 의미
setTitle("좀 그럴듯한 앱");
Edit1 = (EditText) findViewById(R.id.Edit1);
button1 = (Button) findViewById(R.id.button1);//R.id.button1인 이유는 activity_main.xml에서 id를 button1으로 설정해줬기 때
button2 = (Button) findViewById(R.id.button2);
genderImage = (ImageView) findViewById(R.id.genderImage);
Group1 = (RadioGroup) findViewById(R.id.Group1);
Group1.setOnCheckedChangeListener(radioGroupButtonChangeListener);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Edit1.getText().toString() Edit text에 문자열을 가져올 때 쓰는 함
Toast.makeText(getApplicationContext(),Edit1.getText().toString(),Toast.LENGTH_SHORT).show();
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent mIntent = new Intent(Intent.ACTION_VIEW,Uri.parse(Edit1.getText().toString()));
startActivity(mIntent);
}
});
}
RadioGroup.OnCheckedChangeListener radioGroupButtonChangeListener = new RadioGroup.OnCheckedChangeListener() {
@Override // 함수를 불러올 때 반드시 있어야 함
public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) {
if(i == R.id.maleButton){
genderImage.setImageResource(R.drawable.male);
} else if(i == R.id.femaleButton){
genderImage.setImageResource(R.drawable.female);
}
}
};
}
RadioGroup의 개념에 대해서 알게 되었는데 RadioGroup을 객체 생성해주면 그 안에 있는 RadioButton도 id로 접근 할 수 있게 된다.
실행 화면
'안드로이드 > 연습' 카테고리의 다른 글
[Android] xml RelativeLayout 2 (0) | 2021.08.11 |
---|---|
[Android] RelativeLayout 속성 (0) | 2021.08.11 |
[Android] xml layout_weight (0) | 2021.08.11 |
[Android] 단순한 계산기 (0) | 2021.08.10 |
[Android] XML 텍스트 색깔 지정 및 위치 조정하기 (0) | 2021.08.10 |