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" 

Аналогично, сделайте Drawable селектор для вашей кнопки записи и управления с поддержкой государства в вашей деятельности с использованием .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(); 
      } 

     } 
    }); 

Как вы можете видеть, вы можете обрабатывать как требования, в том числе настройка изображения для кнопки, а также то, что происходит по щелчку внутри, если другое тело.

Надеюсь, это поможет.