SeekBarの操作禁止とEditTextの入力文字列制御について

1,152 views
Skip to first unread message

tnk

unread,
May 18, 2011, 1:37:03 AM5/18/11
to android-g...@googlegroups.com
田中といいます。初めまして。

最近、Androidの勉強を始めました。
手始めに電卓のようなものを作ろうとしているのですが、2点ほどわからないこ
とがあります。
ご存じの方がいらっしゃいましたらご教授ください。

1.とある条件の時にSeekBarを操作禁止にしたいと思っていますが、setFocusable(false)
  としても操作できてしまいます。どのような設定を行えばよいのでしょうか?
  (VisualStudioでの Enabled=false のような状態を期待しています)

2.EditTextへの文字列入力時に、自動的にカンマを挿入するようにしたいと思っ
  ています。(12345と入力したら12,345と表示されるような)
  TextWatcher を実装して onTextChanged で CharSequence s を操作すれば
  よさそうなところまではわかったのですが、カンマ入りに加工した後に s
  に戻す方法がわかりません。どのようにすればよいのでしょうか?

以上、初心者の質問で申し訳ありませんがよろしくお願いいたします。

Yu Ishikawa

unread,
May 18, 2011, 6:43:20 AM5/18/11
to android-g...@googlegroups.com
田中さん

こんにちは。石川です。

> 1.とある条件の時にSeekBarを操作禁止にしたいと思っていますが、setFocusable(false)
>   としても操作できてしまいます。どのような設定を行えばよいのでしょうか?
>   (VisualStudioでの Enabled=false のような状態を期待しています)

setEnabledメソッドがあります。

> 2.EditTextへの文字列入力時に、自動的にカンマを挿入するようにしたいと思っ
>   ています。(12345と入力したら12,345と表示されるような)
>   TextWatcher を実装して onTextChanged で CharSequence s を操作すれば
>   よさそうなところまではわかったのですが、カンマ入りに加工した後に s
>   に戻す方法がわかりません。どのようにすればよいのでしょうか?

普通にEditTextに対して、setTextメソッドを実行すればいいと思いますが、
何も考えずにsetTextしたらその操作もTextWatcher の監視の対象になって、
メソッドが呼び出されまくって落ちたので、工夫が必要です。

2011年5月18日14:37 tnk <GBF0...@nifty.com>:

> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
>
>

tnk

unread,
May 19, 2011, 2:26:15 AM5/19/11
to android-g...@googlegroups.com
石川様

ご回答ありがとうございます。

> setEnabledメソッドがあります。

そのものずばりのメソッドがあったのですね。勉強不足でした。

> 普通にEditTextに対して、setTextメソッドを実行すればいいと思いますが、
> 何も考えずにsetTextしたらその操作もTextWatcher の監視の対象になって、
> メソッドが呼び出されまくって落ちたので、工夫が必要です。

ご指摘の通り素直にsetTextを行うことにしました。
メソッドの繰り返し呼び出しに対しては、今回は文字列が希望するフォーマット
になっていないときのみsetTextを行うようにすることで対応しました。
onTextChanged内で文字列を加工できれば楽だと思ったのですがそう簡単ではな
いようですね。

ありがとうございました。

Reply all
Reply to author
Forward
0 new messages