我建立了一個包含兩個按鈕的佈局,Next和Previous。 在按鈕之間,我正在生成一些動態視圖。 所以,當我第一次啓動應用程序時,我想禁用「上一頁」按鈕,由於以前沒有任何視圖。 我還想在沒有更多要顯示的視圖時禁用「下一步」按鈕。 不管如何禁用按鈕? android
您只需在活動中編寫一行代碼便可 ide
Button btn = (Button) findViewById(R.id.button1); btn.setEnabled(false);
當你想啓用相同的按鈕時才寫 佈局
Button btn = (Button) findViewById(R.id.button1); btn.setEnabled(true);
就我而言, 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));
在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" />
首先在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); } }); }
是的,只需使用如下方法便可在XML中禁用它:
<Button android:enabled="false" />