0

我正在寫一個錄音機,它有按鈕來啓動並停止錄音。最初,記錄沒有發生,所以記錄按鈕應該可用,而停止按鈕應該被禁用,因爲它沒有什麼可以停止。如何在Android中最初禁用或按下按鈕?

如何/在哪裏實施?

其他問題是,我的按鈕是ImageButton-s,所以可能我需要一個資產來表示禁用狀態。不幸的是,我發現沒有任何方法可以在選擇器中定義禁用狀態?

+0

檢查是否[此答案](http://stackoverflow.com/a/8196380/3023434)可以幫助你。 –

+0

http://stackoverflow.com/questions/4384890/how-to-disable-an-android-button –

回答

1

您可以使用

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); 
    } 
+0

是的,但在哪裏調用這些方法,以便它在初始化時發生? – Dims

+0

您還需要設置'button.setClickable(false)'來同時禁用點擊行爲和'true'。 –

+0

我編輯了我的答案。請檢查。 –

2

沒有任何示例代碼,我無法給出任何特定於您的項目的示例。但是,在停止圖像按鈕的佈局文件中設置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)基礎上,如果你的應用程序正在錄製你的活動中管理啓用狀態。

1

我已經有過類似的場景,我用一個按鈕來處理播放和暫停,場景是相同的,據我所知,你需要處理記錄的開始和停止。這裏是我的做法:

我保持一個布爾值來保持按鈕的狀態,然後在按鈕的點擊偵聽器中,我相應地做出了更改。具體方法如下:

 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體內會發生什麼。

希望它有幫助。

相關問題