質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

Q&A

解決済

1回答

608閲覧

xamarin.androidでNumberPickerの最大値と最小値、段階設定は可能でしょうか。

Anon_

総合スコア334

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

0グッド

0クリップ

投稿2018/05/17 08:17

xamarin.androidでNumberPickerの最大値と最小値、段階設定は可能でしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

意図を読み違えているかもしれませんが...
例えば、5分刻みの分の入力は次のように作れるようです。 Value は 0 ~ 11 の値になります。

C#

1var numberPicker1 = FindViewById<NumberPicker>(Resource.Id.numberPicker1); 2numberPicker1.MinValue = 0; 3numberPicker1.MaxValue = 11; 4numberPicker1.SetDisplayedValues(new []{"0","5","10","15","20","25","30","35","40","45","50","55"});

ネイティブの関数がそのまま使えるのでノウハウも持ち込める、というのは Xamarin の良いところだと思います。


追記。Value から分を得る方法は、

C#

1var minutes = 5 * numberPicker1.Value;

で済ませても良いですし、

C#

1var minutes = int.Parse(numberPicker1.GetDisplayedValues()[numberPicker1.Value]);

と書いても良いと思います。全体を書き換えて次のようにする手もありそうです。お好みで。

C#

1protected static int[] minutesArray = new[] {0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55}; 2() 3numberPicker1.MaxValue = minutesArray.Length - 1; 4numberPicker1.SetDisplayedValues(minutesArray.Select(_ => _.ToString()).ToArray()); 5() 6var minutes = minutesArray[numberPicker1.Value]; 7

投稿2018/05/17 09:49

編集2018/05/21 01:17
NakamuraYoichi

総合スコア374

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Anon_

2018/05/18 04:28

ありがとうございます。 こちらで一度試させていただきます・
Anon_

2018/05/18 05:37

ちなみにnativeのjavaだとnumberPicker1.setMinValue(0);という書き方になると思うのですが、微妙な書き方の違いを探すのに手こずっています・・。
Anon_

2018/05/18 06:02

numberPicker1.SetDisplayedValues(new []{"0","5","10","15","20","25","30","35","40","45","50","55"}); の記述にてエラーがでてしまいました。 こちらはJavaのnativeな書き方になるのでしょうか。
Anon_

2018/05/18 07:40

すみません、MinValueなどの指定をミスっておりました。 記述していただいた方法で設定できました。 ただ取得側の下記コードでは、インデックス番号が取得されてしまうのですが値を取得する方法はあるのでしょうか。 FindViewById<NumberPicker>(Resource.Id.numberPicker1).Value; ありがとうございます。
NakamuraYoichi

2018/05/21 01:18

選択されている値を直接取得する手段はなさそうです。回答に追記しました。
NakamuraYoichi

2018/05/21 02:09

Microsoft Docs >「Xamarin」 > 上のメニューの「API」の「Android API」 の方が近道ですね。
Anon_

2018/05/21 03:49

値を直接取得できないのですか!? ないのなら仕方がないので配列から取得する方法で実装しようとおもいます。。 ありがとうございます!
Anon_

2018/05/21 03:49

また、ご丁寧にドキュメントなどもご提示いただきありがとうございます。 参考にさせていただきたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問