2011-09-04 61 views
2

我想知道是否有人可以幫助我,我試圖讓我的頭繞過共享偏好,我假設它們存儲在設備(平板電腦)中,並且可以檢查以查看它們存在。 我的代碼如下(第一個)我想要一個按鈕,一旦點擊將一個字符串或布爾值在共享首選項。 第二個代碼是看是否存在共享的首選項,如果它確實讓的setText變化,如果不能忽視,並尋找下一個字符串需要檢查共享首選項字符串或布爾值是否存在

cala1.setOnClickListener(new View.OnClickListener() { 
public void onClick(View v) { 
    LoadPreferences(); 
     SharedPreferences sharedpreferences = getSharedPreferences("prefman", MODE_PRIVATE);   
      SharedPreferences.Editor editor = sharedpreferences.edit(); 
      editor.putString("cal1","c1"); 
      editor.commit();    }); 


enter4.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
LoadPreferences(); 
       SharedPreferences sharedpreferences = getSharedPreferences("prefman", MODE_PRIVATE);   
      sharedpreferences.contains("cal1"); 

       if (sharedpreferences.getString("cal1","c1").equals("cal1")); 

       { 
        {cexist1.setText("Shared prefs exit"); 

       } 
else 
+1

什麼是你的問題?你既沒有說明你的問題是什麼,也沒有說明你提供的代碼是否有效。幫助我們在這裏... – HXCaine

+0

此外,代碼是不完整的,它結束於其他 – HXCaine

回答

16

我不明白你爲什麼叫sharedpreferences.contains("cal1")當你忽略返回值無論如何。 Android的文檔SharedPreferences說以下內容:

包含偏好(String鍵)檢查是否包含 偏好。

看起來就是你想要的,試着用你在if中的調用子句。

if (sharedpreferences.contains("cal1")) { 
    cexist1.setText("Shared prefs exit"); 
} 

代碼的格式上面是有點亂太 - 使得它難以閱讀;)

+0

要問你的問題HXcaine我的代碼沒有工作,因爲第二個代碼只會顯示字符串是否存在的settext。我留下的代碼不完整,因爲我不知道是否有可能在點擊監聽器中放置一些其他例程。 – robj

+0

由於if語句後面有分號,因此您的代碼始終設置文本。 因此,'cexist1.setText(「共享首選項退出」);'塊總是執行,無論如何評估 – kmera

+0

謝謝k-mera,但不幸的是我仍然得到共享前綴退出(我的意思是存在mssplelling)即使我沒有在點擊監聽器上點擊cala1上的按鈕。我需要一些代碼來查看該字符串是否被放入,否則返回false值。 – robj