我正在寫一個錄音機,它有按鈕來啓動並停止錄音。最初,記錄沒有發生,所以記錄按鈕應該可用,而停止按鈕應該被禁用,因爲它沒有什麼可以停止。如何在Android中最初禁用或按下按鈕?
如何/在哪裏實施?
其他問題是,我的按鈕是ImageButton-s,所以可能我需要一個資產來表示禁用狀態。不幸的是,我發現沒有任何方法可以在選擇器中定義禁用狀態?
我正在寫一個錄音機,它有按鈕來啓動並停止錄音。最初,記錄沒有發生,所以記錄按鈕應該可用,而停止按鈕應該被禁用,因爲它沒有什麼可以停止。如何在Android中最初禁用或按下按鈕?
如何/在哪裏實施?
其他問題是,我的按鈕是ImageButton-s,所以可能我需要一個資產來表示禁用狀態。不幸的是,我發現沒有任何方法可以在選擇器中定義禁用狀態?
您可以使用
button.setEnabled(true)
使可按下按鈕。
和
可以使用button.setEnabled(false)
使按鈕不可用按。
您可以將它像這樣
Intitally,你可以做到這一點上創建方法: -
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_in_app_billing);
startButton = (Button)findViewById(R.id.buyButton);
stopButton = (Button)findViewById(R.id.clickButton);
stopButton.setEnabled(false);
}
,然後按下按鈕方法
public void buttonClicked (View view)
{
stopButton.setEnabled(false);
startButton.setEnabled(true);
}
是的,但在哪裏調用這些方法,以便它在初始化時發生? – Dims
您還需要設置'button.setClickable(false)'來同時禁用點擊行爲和'true'。 –
我編輯了我的答案。請檢查。 –
沒有任何示例代碼,我無法給出任何特定於您的項目的示例。但是,在停止圖像按鈕的佈局文件中設置android:enabled="false"
將使默認情況下禁用停止圖像按鈕的佈局膨脹。
至於表示禁用狀態,您可以使用drawable selectors。所以我們可以說你有res/drawable/stop_state.xml
文件:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:drawable="@drawable/stop_disabled" />
<item android:drawable="@drawable/stop_enabled" />
</selector>
在佈局包含您的ImageButton,你會在android:drawable
屬性設置爲這個可繪製例如
android:drawable="@drawable/stop_state"
同樣地,爲您記錄按鈕被拉伸選擇,並使用.setEnabled(boolean)
基礎上,如果你的應用程序正在錄製你的活動中管理啓用狀態。
我已經有過類似的場景,我用一個按鈕來處理播放和暫停,場景是相同的,據我所知,你需要處理記錄的開始和停止。這裏是我的做法:
我保持一個布爾值來保持按鈕的狀態,然後在按鈕的點擊偵聽器中,我相應地做出了更改。具體方法如下:
private boolean isTurnedOn = false;
playButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{
if(!isTurnedOn)
{
//playButton.setBackground(ContextCompat.getDrawable(getApplicationContext(), R.drawable.pause));
//isTurnedOn = true;
//mPlayer.start();
//mPlayer.seekTo(length);
}
else
{
//playButton.setBackground(ContextCompat.getDrawable(getApplicationContext(), R.drawable.play2));
//isTurnedOn = false;
//mPlayer.pause();
//length = mPlayer.getCurrentPosition();
}
}
});
正如你所看到的,你可以同時處理的要求,包括設置圖像按鈕以及上點擊的if else體內會發生什麼。
希望它有幫助。
檢查是否[此答案](http://stackoverflow.com/a/8196380/3023434)可以幫助你。 –
http://stackoverflow.com/questions/4384890/how-to-disable-an-android-button –