2016-12-13 15 views
1

現在、Androidアプリケーションで作業しています。デフォルトのレイアウトで関連するボタンを無効にする

私のアプリ内のすべてのアクティビティは、基本レイアウトが同じで、ファイル "default_layout.xml"に定義されています。各活動のレイアウトファイルでは、私が使用します。

<include layout="@layout/default_layout" android:id="@+id/include"/>

レイアウトを含めること。

私がしようとしているのは、ユーザーが別のものを開くのを防ぐために、現在開いているアクティビティに関連するデフォルトのレイアウトのボタンを無効にすることです(アイコンをクリックしないで、これを視覚的に表すためにアルファ値を変更します)同じ活動のたとえば、設定アクティビティが作成されたときに「設定」ボタンを無効にしたいとします。

私はそうのような、のonCreateメソッド内のコードを経由してボタンにアクセスすることができます。

findViewById(R.id.saveButton).setEnabled(false); 
findViewById(R.id.saveButton).setClickable(false); 
findViewById(R.id.saveButton).setFocusable(false); 
findViewById(R.id.saveButton).setAlpha(0.5f); 

をエラーなし、しかし、これらの方法のどれもが、実際にボタン上で動作しません。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

<Button android:layout_width="90dp" 
     android:layout_height="40dp" 
     android:text="@string/button_open" 
     android:duplicateParentState="true" 
     android:id="@+id/openButton" 
     android:textSize="16sp" android:background="#0A7D1F" 
     android:layout_alignParentTop="true" android:layout_alignParentStart="true" android:textColor="#fff"/> 

<Button android:layout_width="90dp" 
     android:layout_height="40dp" 
     android:text="@string/button_save" 
     android:id="@+id/saveButton" 
     android:textSize="16sp" 
     android:enabled="false" 
     android:background="#0A7D1F" 
     android:layout_alignParentTop="true" android:layout_toEndOf="@+id/openButton" android:textColor="#fff" 
     android:focusable="false" android:focusableInTouchMode="false" android:longClickable="false" 
     android:nestedScrollingEnabled="false"/> 

<Button android:layout_width="90dp" 
     android:layout_height="40dp" 
     android:text="@string/button_send" 
     android:id="@+id/sendButton" 
     android:textSize="16sp" 
     android:background="#0A7D1F" 
     android:textColor="#fff" 
     android:layout_alignParentTop="true" android:layout_alignStart="@+id/fu3Button"/> 

<Button android:layout_width="145dp" 
     android:layout_height="40dp" 
     android:text="@string/button_connect" 
     android:id="@+id/connectButton" 
     android:textSize="16sp" 
     android:background="#0A7D1F" 
     android:textColor="#fff" android:layout_alignParentTop="true" android:layout_toEndOf="@+id/sendButton"/> 

<Button android:layout_width="90dp" 
     android:layout_height="40dp" 
     android:text="@string/button_fu1" 
     android:id="@+id/fu1Button" 
     android:textSize="16sp" 
     android:layout_alignTop="@+id/fu2Button" android:layout_alignStart="@+id/openButton" 
     android:background="#0A7D1F" android:textColor="#fff"/> 

<Button android:layout_width="90dp" 
     android:layout_height="40dp" 
     android:text="@string/button_fu2" 
     android:id="@+id/fu2Button" android:textSize="16sp" 
     android:layout_alignParentBottom="true" android:layout_toStartOf="@+id/fu3Button" 
     android:background="#0A7D1F" android:textColor="#fff"/> 

<Button android:layout_width="90dp" 
     android:layout_height="40dp" 
     android:text="@string/button_fu3" 
     android:id="@+id/fu3Button" android:textSize="16sp" 
     android:layout_alignTop="@+id/fu2Button" android:layout_toEndOf="@+id/saveButton" 
     android:background="#0A7D1F" android:textColor="#fff"/> 

<Button android:layout_width="125dp" 
     android:layout_height="40dp" 
     android:text="@string/button_settings" 
     android:id="@+id/settingsButton" android:textSize="16sp" 
     android:layout_alignBottom="@+id/fu3Button" android:layout_alignStart="@+id/connectButton" 
     android:background="#0A7D1F" android:textColor="#fff" 
     android:onClick="openSettings" android:layout_alignParentEnd="true"/> 

任意およびすべての提案をいただければ幸いです、ありがとう:

以下は私のdefault_layout.xmlです。

+0

default_layout.xmlを表示できます –

答えて

0

'default_layout.xml'ファイルをチェックして、必要なボタンのIDが実際に 'saveButton'であることを確認しましたか?これらはどのようなボタンですか?それらはメニュー内の項目ですか、アプリケーションバー上の項目ですか、実際のボタンですか?

+0

ボタンの種類に関係なく、呼び出されているメソッドはすべての 'View'オブジェクトで利用可能です –

+0

同意します。単に 'default_layout.xml'ファイルを表示するように求めました。 – slayerpjo

+0

ええ、idは正しいです。レイアウトファイルを含めるようにOPを編集しました。 –

0

各ボタンで設定している背景を削除してみます。これはあなたが無効にしているという事実を隠している可能性があります。

+0

視覚的に隠されていてもボタンを押すことができ、関連するアクティビティの別のインスタンスが開きます。これが私が防止しようとしていることです。 –

関連する問題