[android] 안드로이드 버튼을 비활성화하는 방법?

다음과 이전의 두 버튼이 포함 된 레이아웃을 만들었습니다. 버튼 사이에서 동적 뷰를 생성하고 있습니다. 따라서 응용 프로그램을 처음 시작할 때 이전보기가 없으므로 “이전”단추를 비활성화하려고합니다. 표시 할 뷰가 더 없을 때 “다음”버튼을 비활성화하고 싶습니다. 어쨌든 버튼을 비활성화 할 수 있습니까?

샘플 레이아웃의 스크린 샷



답변

이것을 시도 했습니까?

myButton.setEnabled(false); 

업데이트 : 그웬에게 감사합니다. android:clickable버튼을 클릭 할 수 있는지 여부를 결정하기 위해 XML 레이아웃에서 설정할 수있는 것을 거의 잊었습니다 .


답변

레이아웃이 런타임에 설정되어 있기 때문에 XML에서 활성화하거나 비활성화 할 수 없지만로 액티비티를 시작할 때 클릭 할 수 있는지 설정할 수 있습니다 android:clickable.


답변

당신은 당신의 활동에서 한 줄의 코드를 작성합니다.

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

같은 버튼을 사용하려면 그냥 쓰십시오.

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


답변

예, 다음을 사용하여 XML에서 비활성화 할 수 있습니다.

<Button
android:enabled="false"
/>


답변

Java에서는 버튼에 대한 참조가 있으면

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

버튼을 활성화 / 비활성화하려면 다음 중 하나를 사용할 수 있습니다.

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

또는:

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

처음부터 버튼을 비활성화하려면 button.setEnabled (false); onCreate 메소드에서. 그렇지 않으면 XML에서 직접 사용할 수 있습니다.

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" />


답변

나의 경우에는,

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

제대로 작동하고 버튼을 정상적으로 활성화 및 비활성화합니다. 그러나 일단 버튼 상태가 비활성화되면 클릭 할 수는 있지만 다시 활성화 상태로 돌아 가지 않습니다. 드로어 블 상태를 무효화하고 새로 고치려고했지만 운이 없습니다.

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

당신이나 비슷한 문제가있는 사람이라면 저에게 맞는 배경을 다시 그릴 수 있습니다. 모든 API 레벨에서 작동합니다.

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


답변

Kotlin에서 버튼으로 id를 참조하면 버튼을 다음과 같이 활성화 / 비활성화하십시오

layout.xml

<Button
   android:id="@+id/btn_start"
   android:layout_width="100dp"
   android:layout_height="50dp"
   android:text="@string/start"
   android:layout_alignParentBottom="true"/>

activity.kt

  btn_start.isEnabled = true   //to enable button
  btn_start.isEnabled = false  //to disable button