views:

32

answers:

2

Hi, I have A game to which I recently added a global high score functionality which made a lot of people upset so I want to add the option of disabling it. What I did was this: in my settings activity view, I added the following:

<!-- High Score Tracking -->
 <LinearLayout android:layout_weight="40"
  android:layout_width="fill_parent" android:layout_height="wrap_content"
  android:orientation="vertical" android:padding="5dip">
  <LinearLayout android:layout_width="fill_parent"
   android:layout_height="wrap_content">
   <CheckBox android:text="@string/EnableHighscoreCBText"
    android:id="@+id/EnableHighscoreCB" android:layout_width="fill_parent"
    android:layout_height="wrap_content">
   </CheckBox>
  </LinearLayout>
  <!-- High score specific settings -->
  <LinearLayout android:layout_width="fill_parent"
   android:layout_height="wrap_content" android:orientation="horizontal"
   android:weightSum="100" android:padding="5dip">
   <CheckBox android:text="@string/EnableShareScoresCBText"
    android:id="@+id/EnableShareScoresCB" android:layout_width="fill_parent"
    android:layout_height="wrap_content">
   </CheckBox>

   <TextView android:id="@+id/DefaultPlayerNameTv"
    android:layout_width="wrap_content" android:layout_weight="30"
    android:layout_height="wrap_content" android:text="@string/pDefName"
    android:textSize="18sp">
   </TextView>
   <EditText android:id="@+id/PlayerNameEt"
    android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:text="@string/pNameDefVal" android:layout_weight="70"
    android:textSize="18sp" android:maxLength="20">
   </EditText>
  </LinearLayout>
 </LinearLayout>

What I want to do is to disable the entire "High score specific settings" layout when the user unchecks the enable high score tracking check box. I tried disabling it by setting the setEnabled to false, but that didnt work at all... Should I be using a viewgroup or something? Is there a refresh method I should run to apply the change? Thanks, e.

[bump?]

A: 

Just control the visiblity parameter for the Layout via setVisibility(). You can switch it between three values: visible, invisible and gone (see the documentation).

I think in your case the most senseful would be to switch between visible and gone.

Marcin Gil
A: 

Apparently the correct way to do it is by using preferences... I'm reading about it now, but I think that's what people should use if they are trying to implement something like that check out the following links for more information on this:

http://android-journey.blogspot.com/2010/01/for-almost-any-application-we-need-to.html and developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/MyPreference.html developer.android.com/reference/android/preference/Preference.html