-
[android] android 기본 위젯 익히기2app/android 2021. 10. 28. 17:19반응형
버튼과 에디트텍스트
버튼과 에디트텍스트는 사용자에게서 어떤 값을 입력받기 위한 가장 기본적인 위젯
두 위젯은 view 클래스와 textView 클래스를 상속받으므로 비슷하게 사용 가능
에디트텍스트
<EditText android=id"@+id/edittext1" />
에디트 텍스트도 변수 선언하고 id값을 넣어 접근 가능
변수선언
- var myEdit : EditText
위젯 대입
- myEdit = findViewById<EditText>(R.id.edittext)
입력 값 가져오기
람다식안에 넣음
- var myStr : String = myEdit.getText().toString()
<예제> 초간단 계산기 만들기
activity_main.xml
<?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="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dp" android:hint="숫자1"/> <EditText android:id="@+id/Edit2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dp" android:hint="숫자2"/> <Button android:id="@+id/BtnAdd" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:text="더하기"/> <Button android:id="@+id/BtnSub" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:text="빼기"/> <Button android:id="@+id/BtnMul" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:text="곱하기"/> <Button android:id="@+id/BtnDiv" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:text="나누기"/> <TextView android:id="@+id/TextResult" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="30dp" android:textColor="#FF0000" android:layout_margin="10dp" android:text="계산 결과 : "/> </LinearLayout>
MainActivity.kt
package kr.ac.dongyang.project4_11 import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { lateinit var num1: String lateinit var num2: String var result: Int? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) BtnAdd.setOnClickListener { num1 = Edit1.text.toString() num2 = Edit2.text.toString() result = Integer.parseInt(num1) + num2.toInt() TextResult.text = "계산결과 : " + result } BtnSub.setOnClickListener { num1 = Edit1.text.toString() num2 = Edit2.text.toString() result = Integer.parseInt(num1) - num2.toInt() TextResult.text = "계산결과 : " + result } BtnMul.setOnClickListener { num1 = Edit1.text.toString() num2 = Edit2.text.toString() result = Integer.parseInt(num1) * num2.toInt() TextResult.text = "계산결과 : " + result } BtnDiv.setOnClickListener { num1 = Edit1.text.toString() num2 = Edit2.text.toString() result = Integer.parseInt(num1) / num2.toInt() TextResult.text = "계산결과 : " + result } } }
실행결과
컴파운드 버튼
라디오 버튼과 라디오그룹
라디오버튼
xml 속성이나 메소드가 체크박스와 거의 동일하지만 용도가 다름
여러 개 중 하나만 선택해야 하는 경우에 사용
-그러나 라디오버튼만 여러 개 나열하면 클릭하는 것마다 모두 중복 선택되므로 라디오그룹과 함께 사용
-각 라디오 버튼 id 속성이 꼭 있어야 한다.
activity_main.xml
<?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" android:padding="30dp" tools:context=".MainActivity"> <RadioGroup android:id="@+id/rGroup1" android:layout_width="wrap_content" android:layout_height="wrap_content"> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="남성" /> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="여성" /> </RadioGroup> </LinearLayout>
실행결과
이미지뷰와 이미지버튼
이미지뷰
그림을 출력하는 위제
그림을 넣거나 화면을 화려하게 구성할 때 사용한다
src – 이미지의 경로를 나타냄
maxHeight/maxWidth – 이미지의 크기를 지정함
scaleType – 이미지의 확대/축소 방식을 지정
– scaleType의 속성: matrix, fitXY, fitStart, fitEnd, center 등
지정한 값에 따라 이미지를 확대/축소하는 방식이 결정
사용하려는 그림파일은 res - drawable 폴더에 있어야한다!!!!!!!(중요)
<예제> 애완동물 사진 보기 앱 만들기
activity_main.xml
<?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"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="선택을 시작하겠습니까?" android:textSize="20dp"/> <CheckBox android:id="@+id/ChkAgree" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="시작함" /> <TextView android:id="@+id/Text2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="좋아하는 애완동물은?" android:textSize="20dp" android:visibility="invisible"/> <RadioGroup android:id="@+id/Rgroup1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="invisible" > <RadioButton android:id="@+id/RdoDog" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="강아지" /> <RadioButton android:id="@+id/RdoCat" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="고양이" /> <RadioButton android:id="@+id/RdoRabbit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="토끼" /> </RadioGroup> <Button android:id="@+id/BtnOK" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="선택완료" android:visibility="invisible"/> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/ImgPet" android:visibility="invisible"/> </LinearLayout>
MainActivity.kt
package kr.ac.dongyang.project4_2 import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.View import android.widget.Toast import kotlinx.android.synthetic.main.activity_main.* import org.w3c.dom.Text class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) title = "애완동물 사진 보기" ChkAgree.setOnCheckedChangeListener { compoundButton, b -> if( ChkAgree.isChecked == true ) { Text2.visibility = View.VISIBLE Rgroup1.visibility = View.VISIBLE BtnOK.visibility = View.VISIBLE ImgPet.visibility = View.VISIBLE } else { Text2.visibility = View.VISIBLE BtnOK.visibility = View.VISIBLE ImgPet.visibility = View.VISIBLE } } BtnOK.setOnClickListener { when (Rgroup1.checkedRadioButtonId) { R.id.RdoDog -> ImgPet.setImageResource(R.drawable.dog) R.id.RdoCat -> ImgPet.setImageResource(R.drawable.cat) R.id.RdoRabbit -> ImgPet.setImageResource(R.drawable.rabbit) else -> Toast.makeText(applicationContext, "동물 먼저 선택하세요", Toast.LENGTH_SHORT).show() } } } }
실행결과
완성 ***^&%^%^^^******
반응형'app > android' 카테고리의 다른 글
[android] android 고급 위젯 다루기1 (0) 2021.10.28 [android] android 레이아웃 익히기 (0) 2021.10.28 [android] android 기본 위젯 익히기1 (0) 2021.10.28 [android] android kotlin (0) 2021.10.27 [android] android 처음 만드는 안드로이드 어플리케이션 (0) 2021.10.27