如何禁用Android按鈕?

我建立了一個包含兩個按鈕的佈局,Next和Previous。 在按鈕之間,我正在生成一些動態視圖。 所以,當我第一次啓動應用程序時,我想禁用「上一頁」按鈕,由於以前沒有任何視圖。 我還想在沒有更多要顯示的視圖時禁用「下一步」按鈕。 不管如何禁用按鈕? android

屏幕截圖的樣本佈局


#1樓

您只需在活動中編寫一行代碼便可 ide

Button btn = (Button) findViewById(R.id.button1);
btn.setEnabled(false);

當你想啓用相同的按鈕時才寫 佈局

Button btn = (Button) findViewById(R.id.button1);
btn.setEnabled(true);

#2樓

就我而言, spa

myButton.setEnabled(false);
myButton.setEnabled(true);

工做正常,它正在啓用和禁用按鈕。 可是一旦按鈕狀態被禁用,它就不會再次返回到啓用狀態,儘管它是可點擊的。 我嘗試了無效和刷新可繪製狀態,但沒有運氣。 code

myButton.invalidate();
myButton.refreshDrawableState();

若是您或任何有相似問題的人,對我有用的是再次設置背景可繪製。 適用於任何API級別。 xml

myButton.setEnabled(true);
myButton.setBackgroundDrawable(activity.getResources().getDrawable(R.drawable.myButtonDrawable));

#3樓

在Java中,一旦你有了按鈕的引用: get

Button button = (Button) findviewById(R.id.button);

要啓用/禁用按鈕,您可使用如下任一方法: string

button.setEnabled(false);
button.setEnabled(true);

要麼: it

button.setClickable(false);
button.setClickable(true);

因爲你想從頭開始禁用按鈕,你可使用button.setEnabled(false); 在onCreate方法中。 不然,從XML,您能夠直接使用: io

android:clickable = "false"

因此:

<Button
        android:id="@+id/button"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="@string/button_text"
        android:clickable = "false" />

#4樓

首先在xml中將按鈕設爲android:clickable="false"

<Button
        android:id="@+id/btn_send"
        android:clickable="false"/>

而後在你的代碼中,在oncreate()方法裏面設置button屬性爲

btn.setClickable(true);

而後在按鈕內單擊將代碼更改成

btn.setClickable(false);

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    btnSend = (Button) findViewById(R.id.btn_send);
    btnSend.setClickable(true);
    btnSend.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            btnSend.setClickable(false);

        }
    });
}

#5樓

是的,只需使用如下方法便可在XML中禁用它:

<Button
android:enabled="false"
/>
相關文章
相關標籤/搜索