반응형
<xml>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
//뷰의 여백을 16dp로 설정
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="16dp"
//위젯의 위치에 대한 기준은 부모 뷰로 정함
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true" //위치를 위쪽의 왼쪽에 맞춤
android:layout_alignParentTop="true"/>
<RadioGroup
android:id="@+id/radioGroup1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true" //위치를 왼쪽에 맞춤
android:layout_below="@+id/editText1"
>
<RadioButton
android:id="@+id/celsius"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true" //체크가 되어있는 상태로 보이게함
android:text="섭씨" />
<RadioButton
android:id="@+id/fahrenheit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="화씨" />
</RadioGroup>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/radioGroup1"
android:layout_below="@+id/radioGroup1"
android:text="변환"
android:onClick="onClicked" //이벤트 추가
/>
</RelativeLayout>
<MainActivity.java>
package com.example.a5_homework4;
import androidx.appcompat.app.AppCompatActivity;
import android.net.wifi.p2p.WifiP2pManager;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity{
private EditText text;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text=(EditText)findViewById(R.id.editText1);
}
public void onClicked(View view){ //클릭 이벤트 발생시
switch(view.getId())
{
case R.id.button1:
RadioButton celsiusButton=(RadioButton) findViewById(R.id.celsius);
RadioButton fahrenheitButton = (RadioButton)findViewById(R.id.fahrenheit);
//텍스트에 글자가 없으면 Toast 출력
if(text.getText().length()==0){
Toast.makeText(this,"정확한 값을 입력하시오",Toast.LENGTH_LONG).show();
return;
}
float inputValue = Float.parseFloat(text.getText().toString());
//섭씨버튼 체크시
if (celsiusButton.isChecked()){
text.setText(String.valueOf(convertCelsiusToFahrenheit(inputValue)));
//텍스트는 화씨의 온도로 변환
celsiusButton.setChecked(false); //섭씨버튼의 체크해제 및 화씨버튼 체크 설정
fahrenheitButton.setChecked(true);
}
else {
text.setText(String .valueOf((convertFahrenheitToCelsius(inputValue))));
//화씨온도를 섭씨온도로 전환
fahrenheitButton.setChecked(false); //화씨버튼 체크해제 및 섭씨버튼 체크
celsiusButton.setChecked(true);
}
break;
}
}
//화씨온도 및 섭씨온도의 변환 식 메소드
float convertFahrenheitToCelsius(float fahrenheit){
return((fahrenheit-32)*5/9);
}
float convertCelsiusToFahrenheit(float celsius){
return((celsius*9)/5)+32;
}
}
<출력화면>
반응형
'안드로이드' 카테고리의 다른 글
[안드로이드] 여론조사앱 (0) | 2019.10.12 |
---|---|
[안드로이드]이벤트 처리 방법 (0) | 2019.10.07 |
[안드로이드] 사용자 인터페이스 기초 (0) | 2019.10.07 |
[안드로이드] 안드로이드 기초사항 (0) | 2019.10.07 |
[Android] 멀티 터치 (Multi Touch) (0) | 2019.10.07 |
댓글