F#에서 Android 앱 개발 카운터(수취기)편

F#에서 Android 앱 개발로서 카운터(수취기)의 작성 방법을 소개합니다.

F#에서 Android 앱 개발의 기본은 다음 기사를 참조하십시오.
F#에서 Android 앱 개발 Helloworld 편

솔루션 탐색기의 Resources\layout\Main.axml을 열면 화면 레이아웃이 표시됩니다.


Main.axml에 도구 상자에 "TextView"또는 "ImageButton"을 놓습니다.


Main.axml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:text="@string/cnt"
        android:layout_width="match_parent"
        android:layout_height="254.5dp"
        android:id="@+id/counterText"
        android:gravity="center"
        android:textSize="@android:dimen/app_icon_size"/>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <ImageButton
            android:src="@drawable/decrement"
            android:layout_width="194.0dp"
            android:layout_height="233.0dp"
            android:scaleType="centerInside"
            android:layout_weight="1"
            android:background="@null"
            android:id="@+id/imageButton1"
            android:layout_marginTop="0.0dp"
            android:layout_marginRight="0.0dp" />
        <ImageButton
            android:src="@drawable/increment"
            android:layout_width="180.0dp"
            android:layout_height="match_parent"
            android:scaleType="centerInside"
            android:layout_weight="1"
            android:background="@null"
            android:id="@+id/imageButton2"
            android:layout_marginTop="0.0dp" />
    </LinearLayout>
</LinearLayout>
android:text="@string/cnt"

또한 위의 참조를 추가합니다.
Resources\values ​​\Strings.xml 다음과 같이 편집하여 문자열을 참조 할 수 있습니다.

Strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string name="cnt">0</string>
  <string name="hello">Hello World, Click Me!</string>
  <string name="app_name">TallyCnt</string>
</resources>

MainActivity.fs는 다음과 같습니다.
imageButton2를 누르면 카운트를 +1하고,
imageButton1을 누르면 카운트가 -1로 설정됩니다.
# 미리 빌드하지 않으면 오류가 발생하는 것처럼 보일 수 있습니다.

MainActivity.fs
namespace TallyCnt

open System

open Android.App
open Android.Content
open Android.OS
open Android.Runtime
open Android.Views
open Android.Widget

type Resources = TallyCnt.Resource

[<Activity (Label = "TallyCnt", MainLauncher = true, Icon = "@mipmap/icon")>]
type MainActivity () =
    inherit Activity ()

    let mutable count:int = 1
    let mutable counter:int = 0

    override this.OnCreate (bundle) =

        base.OnCreate (bundle)

        // Set our view from the "main" layout resource
        this.SetContentView (Resources.Layout.Main)

        let cntText = this.FindViewById<TextView>(Resources.Id.counterText);
        let incrementButton = this.FindViewById<ImageButton>(Resources.Id.imageButton2);
        incrementButton.Click.Add(fun args ->
            counter <- counter + 1
            cntText.Text <- sprintf "%d" counter
        )

        let dencrementButton = this.FindViewById<ImageButton>(Resources.Id.imageButton1);
        dencrementButton.Click.Add(fun args ->
            counter <- counter - 1
            if counter < 0
            then counter <- 0;
            cntText.Text <- sprintf "%d" counter
        )


디버그 해 보면 완성입니다.


좋은 웹페이지 즐겨찾기