2012-02-21 25 views
0

私のアプリケーションには[環境設定]メニューがあります。 「音楽を有効にする」と「ヒントを表示する」の2つのチェックボックスがあります。私が欲しいのは、「音楽を有効にする」チェックボックスをオンにすると、ミュージックリストが表示されます。そうでない場合、音楽リストは有効になりません。私のコード:Androidの設定メニューの項目を非表示にする

エラーはありませんが、間違っています。 「音楽を有効にする」チェックボックスをオフにすると、音楽リストがすぐに隠れていなかったので、もう一度メニューに戻って音楽リストが隠れていることを確認する必要があります。 「音楽を有効にする」項目のチェックを外した後、直接非表示にする方法はありますか? 私に助けてくれてありがとう!

答えて

3

あなたがしようとしていることを正確に行う機能が組み込まれています。 preferences.xmlファイルでは、music_listプリファレンスの依存関係をmusic_enableプリファレンスに依存するように設定します。例えば

<android.preference.CheckBoxPreference 
     android:key="music_enable" 
     android:defaultValue="false" 
     android:title="Enable Music" 
     /> 

    <android.preference.ListPreference 
     android:key="music_list" 
     ... 
     android:dependency="music_enable" 
     /> 

ユーザーは「music_enableは」「music_list」は有効になります]チェックボックスをチェックするたびに。 「music_enable」チェックボックスのチェックを外すと、「music_list」が無効になります。

0

あなたの好みの外観をリフレッシュ強制したい場合は、単に実行します。

Preference myPref = findPreference("mypref"); 
myPref.setDefaultValue((int)(Math.random()*1000); // you can also backup the value before and reset it after if you need to keep a default value 

ない完璧なソリューションを、それはきっとあなたの好みをリフレッシュするには、Androidを強制します。

私はPaul-Janソリューションを試しましたが、不都合にそれがうまくいかず、値が変更されないとonContentChanged()は何もしません。

関連する問題