13

ユーザーには無効に見えるようにボタンをグレー表示したいのですが、クリックをリッスンして、ボタンが適用できない理由を説明するメッセージをユーザーに表示できるようにします。

ボタンの色を手動で灰色に設定するのではなく、Android API が適切な標準の無効な外観を構成するものであることを確認したいと思います。これを行う最良の方法は何ですか?

関連: Android - 無効化されたボタンを聞く

4

6 に答える 6

10

これは、確実に機能することを無効にしたときにタッチのイベントを公開し、テストしたカスタム ボタンです。あなたに合わせてデザインされた

public class MyObservableButton extends Button
{
public MyObservableButton(Context context, AttributeSet attrs)
{
    super(context, attrs);
}

private IOnClickWhenEnabledListner mListner;

public void setOnClickWhenEnabledListener(IOnClickWhenEnabledListner listener) {
    mListner = listener;
}

private interface IOnClickWhenEnabledListner {
    public void onClickWhenEnabled();
}

@Override
public boolean onTouchEvent(MotionEvent event)
{       
    if (event.getAction() == MotionEvent.ACTION_DOWN) {
        if (!isEnabled() && mListner != null) {
            mListner.onClickWhenEnabled();
        }
    }

    return super.onTouchEvent(event);
}

}

これは、Android 開発者としての私の観点から、あなたが望むことを達成するための正しい方法です。

Android のすべてのビューを拡張しても問題はなく、それらを xml ファイルで使用し、代わりにソースを使用します。

幸運を

于 2012-06-02T07:10:45.550 に答える
5

ボタンの背景を手動で無効のデフォルトに設定することもできます。ただし、ボタンを有効のままにして、クリックイベントを通常の方法で処理します

このような何かがそれを行う必要があります:

mBtn.setBackgroundResource(android.R.drawable.btn_default_normal_disabled);
于 2012-06-01T15:36:30.310 に答える
0

私は Android の専門家ではないので、もっと良い方法があるかもしれませんが、ボタンを無効にして、イベントをキャッチする透明なビューをオーバーレイするのはどうですか?

ビューを常にボタンの下に置くことができるので、z-index を変更するか、必要に応じて動的に作成するだけで済みます。

于 2012-06-01T15:30:18.000 に答える
-2

Buttonのスタイルをグレー表示に設定して(押された状態と押されていない状態の両方で)、setOnClickListener()通常どおりに設定することもできますが、onClick()メソッドにクリックできないというメッセージを表示させます。

于 2012-06-01T15:37:13.127 に答える
-2

ボタンはテキストビューを拡張するため。.setTextColor() や .setBackgroundColor() などのテキストビューでメソッドを使用できます。

ディスプレイには、次の 2 つのオプションがあります。

  • AlertDialog - アラートを表示しますが、指定しない限り自己終了しません。
  • トースト - 一定時間テキストを表示し、自己終了します。

好きなのを選びな。

于 2012-06-01T15:38:17.823 に答える