티스토리 뷰
Xamarin 계산기 앱 만들기자마린(Xamarin)으로 계산기 앱 만들기
1. 새프로젝트 생성 Visual C# -> Android -> Android앱(Xamarin)->이름 -> 확인
2. 비어 있는 앱 선택.
3. 솔루션 탐색기 -> Resources -> layout -> activity_main.axml 에서 다음과 같은 작업을 한다.
4. 계산기 레이아웃 만들기
5. button_calculator 스타일 xml파일 만들기, 솔루션 탐색기->values 우클릭 ->추가->새항목->xml파일
6. 앱을 실행해서 레이아웃이 정상적으로 나오는지 확인한다.
7. 코딩하기 그리고 빌드->솔루선 빌드->오류
8.심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태
오류 You need to add a reference to Mono.Android.Export.dll when you use ExportAttribute or ExportFieldAttribute. App7
참조 우클릭 -> 참조추가 -> Mono.Android.Export 추가 -> 확인
그리고 빌드->솔루션 빌드
9 전체 소스 코드
using Android.App;
using Android.OS;
using Android.Support.V7.App;
using Android.Runtime;
using Android.Widget;
using Android.Views;
using System;
namespace App7
{
[Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
public class MainActivity : AppCompatActivity
{
private TextView calculatorText;
private string[] numbers = new string[2];
private string @operator;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.activity_main);
calculatorText = FindViewById(Resource.Id.calculator_text_view);
}
[Java.Interop.Export("ButtonClick")]
public void ButtonClick(View v)
{
Button button = (Button)v;
if ("0123456789.".Contains(button.Text))
AddDigitalOrDecimalPoint(button.Text);
else if ("/x+-".Contains(button.Text))
AddOperator(button.Text);
else if ("=" == button.Text)
Calculate();
else
Erase();
}
private void Erase()
{
numbers[0] = numbers[1] = null;
@operator = null;
UpdateCalculatorText();
}
private void Calculate(string newOperator = null)
{
double? result = null;
double? first = numbers[0] == null ? null : (double?)double.Parse(numbers[0]);
double? second = numbers[1] == null ? null : (double?)double.Parse(numbers[1]);
switch(@operator)
{
case "/":
result = first / second;
break;
case "x":
result = first * second;
break;
case "+":
result = first + second;
break;
case "-":
result = first - second;
break;
}
if(result != null)
{
numbers[0] = result.ToString();
@operator = newOperator;
numbers[1] = null;
UpdateCalculatorText();
}
}
private void AddOperator(string value)
{
if(numbers[1] != null)
{
Calculate(value);
return;
}
@operator = value;
UpdateCalculatorText();
}
private void AddDigitalOrDecimalPoint(string value)
{
int index = @operator == null ? 0 : 1;
if (value == "." && numbers[index].Contains("."))
return;
numbers[index] += value;
UpdateCalculatorText();
}
private void UpdateCalculatorText() => calculatorText.Text = $"{numbers[0]} {@operator} {numbers[1]}";
}
}
10 Xamarin으로 만든 계산기 앱실행화면
'프로그래밍 > 안드로이드 앱프로그래밍' 카테고리의 다른 글
자마린(Xamarin) 날씨앱 만들기 (0) | 2019.12.05 |
---|---|
Xamarin Android RelativeLayout으로 만들기 (0) | 2019.12.04 |
자마린으로 간단한 버튼 앱만들기 시작하기1 (2) | 2019.12.03 |
안드로이드 프로그래밍6 터치이벤트 (0) | 2019.12.02 |
안드로이드 프로그래밍5 스크롤뷰 (0) | 2019.12.01 |