2011-01-21 14 views
4

私はEditTextフィールドにテキストがない場合、OKボタンを無効にするEditTextPreferenceを持っています。カスタムのEditTextPreferenceクラスを作成し、EditTextオブジェクトを取得してTextWatcherを設定することはできますが、ボタンを無効にする方法は見つかりません。ダイアログのOKボタンとCancelボタンにアクセスできないようです。EditTextPreferenceボタンを無効にしますか?

誰でもこれらのボタンにアクセスする方法や、私がしようとしていることを行う方法を知っていますか?

他のオプションは、EditTextPreferenceのように見えるカスタムダイアログを最初から作成しようとすることです。

+0

uがsoultionを手に入れた

は、私は次のことをやりましたか? –

答えて

9

onCheckValue関数がtrueまたはfalseを返すかどうかによって、ボタンを有効または無効にするコードサンプルです。

​​
+0

まだボタンにアクセスする方法はわかりません。 OKボタンを無効にする必要があります。あなたが提案しているのは、私自身のダイアログを作ることだけです。私がこのアプローチをとるならば、私はカスタムのDialogクラスを構築するだけです。 – Bob

+0

私は答えを更新しました。私はこの新しいアプローチを自分で確認しました。それは私のために働きます。 – inazaruk

+0

私のためにも動作します。 – dmon

1

は、preference.xmlの新しいEditTextPreferenceを新しいValidatedEditTextPreferenceに変更する必要があります。

旧コード:

<EditTextPreference 
    android:dialogMessage="Please input your email" 
    android:dialogTitle="Set email" 
    android:key="Email" 
    android:summary="Your email" 
    android:title="-Missed call send to" android:defaultValue="[email protected]"/> 

新コード:

<com.tanggod.missedcall2mail.ValidatedEditTextPreference 
    android:dialogMessage="Please input your email" 
    android:dialogTitle="Set email" 
    android:key="Email" 
    android:summary="Your email" 
    android:title="-Missed call send to" android:defaultValue="[email protected]"/> 
+1

*新しい* ValidatedEditTextPreferenceに変更する必要があるのはなぜですか?他のライブラリを追加する必要があるため、APIの一部ではないことは明らかです。また、あなたは2年前に尋ねられたことに答えているので、ボブはこの問題の答えを特に必要としないかもしれません。 – BLaZuRE

+0

はい、あなたは正しいです、私はそれが2年前だと分かります。なぜなら私はEditTextPreferenceをinazarukの方法としてValidatedEditTextPreferenceに変更したからです。私はちょうどそれを使用する方法を示しています。 – User9527