2012-05-11 11 views
0

sharedPreferencesを使用することにしたので、トグルボタンの値を自分のアクティビティプリファレンスに保存することができました。私の主な活動では、ユーザがプリファレンス・アクティビティでtwitterボタンをクリックすると、Twitterボタンを隠したいと思う。android getsharedPreferences他のアクティビティを非表示にする方法がわからない

private SharedPreferences prefs; 
private String prefName = "MyPref"; 
private ToggleButton timer, twitter; 
// this is the key used to set the timer to visible or hidden 
private static final String TIMER_KEY = "timekey"; 
private static final String TWITTER_KEY= "tweet"; 
public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.preferences); 
     timer = (ToggleButton)findViewById(R.id.timer_pref); 
     twitter =(ToggleButton)findViewById(R.id.twitter_pref); 
     timer.setChecked(true); 
     twitter.setChecked(true); 
     // Toast.makeText(Preferences.this, timer, Toast.LENGTH_SHORT).show(); 
     Button b = (Button) findViewById(R.id.home_btn); 
     b.setOnClickListener(new View.OnClickListener() 
     { 
     // now add the new screen 


      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 

       // get the shared perference data 





       Intent i = new Intent(Preferences.this, AndroidGUIActivity.class); 
       startActivity(i); 

      } 
     }); 

     twitter.setOnClickListener(new View.OnClickListener() { 

      public void onClick(View v) { 
       // TODO Auto-generated method stub 

      prefs = getSharedPreferences("MyPref", 0); 
       SharedPreferences.Editor editor = prefs.edit(); 

       if (timer.isChecked() == true) 
       { 
       editor.putBoolean("twitterButtonStatus", true); 
       } 
       else if(timer.isChecked() == false) 
       { 
        editor.putBoolean("twitterButtonStatus", false);  
       } 


       // now save the value that is passed to the editor.putBoolean function 
       // the twitter data hase been saved 
       editor.commit(); 

       // now store the variable so that it can be copied to another activity 
       Bundle b = new Bundle(); 


      } 
     }); 

答えて

1

インテントを使用したアクティビティでプリファレンスを転送する必要はありません。

「共有」プリファレンスには、どのアクティビティからでもアクセスできます。

あなただけの内部の文字列のキーとボタンの状態を置く:

SharedPreferences settings = getSharedPreferences("MyPrefs", 0); 
SharedPreferences.Editor editor = settings.edit(); 
editor.putBoolean("twitterButtonStatus", buttonStatus); 

、別のアクティビティでは、文字列のキー( "twitterButtonStatus")を使用して、これらの好み検索:

SharedPreferences settings = getSharedPreferences("MyPrefs", 0); 
boolean buttonStatus = settings.getBoolean("twitterButtonStatus", false); // second param is default! 

参照:http://developer.android.com/guide/topics/data/data-storage.html

編集:

Youre saヴィングSharedPrefsは今、ゴーンこのような何かを、それらを取り戻すと、あなたのボタンを設定するには:

SharedPreferences settings = getSharedPreferences(prefName, 0); 
boolean buttonStatus = settings.getBoolean(TWITTER_KEY, true); //2nd is default 
if(buttonstatus==false) twitter.setVisibility(View.GONE); 
+0

私は下 – al23dev

+1

追加提案を掲示したコードは、私はいくつかの新しいコードを追加していません。私は問題を解決するために最初のコードブロックと3番目のコードブロックを使用しました。 – Ostkontentitan

+0

に影響をあなたの答え – al23dev

関連する問題