2012-12-28 93 views
-2

我使用共享偏好設置了一個安裝類,在第一個打開的apk中,用戶使用默認值,並在編輯之後如果他希望使用更新值。我的問題是,當重新打開apk和沒有創建偏好apk顯示默認值,否則,如果有舊的偏好顯示這一點。我希望更新偏好onCreate與舊的保存偏好,如果首選項存在(否與默認值)。我如何創建這個?我想要的東西,如果PREF存在去分享偏好...和閱讀價值......否則使用默認Android安卓apk安裝默認值共享首選項?

String strValue ="http://www.power7.net/LEDstate.txt";//default value 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_ioweb_bt); 

    /* SharedPreferences preferences = getSharedPreferences("dataioweb" , MODE_PRIVATE); 

    String strValue = preferences.getString("Url",""); 
     text = (TextView) findViewById(R.id.textUrl); 
     text.setText(strValue); 
    */ 

     edittxtUrl = (EditText)findViewById(R.id.txtUrl); 
     edittxtUrl.setText(strValue); 




} 

public void Save(View view) { 

    SharedPreferences preferences = getSharedPreferences("dataioweb" , MODE_PRIVATE); 
     SharedPreferences.Editor editor = preferences.edit(); // Put the values from the UI 

     edittxtUrl = (EditText)findViewById(R.id.txtUrl); 
     String strUrl = edittxtUrl.getText().toString(); 


     editor.putString("Url", strUrl); // value to store 

     // Commit to storage 
     editor.commit(); 

回答

0

更改您的代碼在TextView中設置默認值,當用戶啓動應用程序或任何價值不存在在SharedPreferences

SharedPreferences preferences; 
String strValue=""; 
TextView text; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_ioweb_bt); 

    text = (TextView) findViewById(R.id.textUrl); 
    preferences = getSharedPreferences("dataioweb" , MODE_PRIVATE); 

    strValue = preferences.getString("Url",""); 
    if(!strValue.equals("")){ 

     text.setText(strValue); 
    } 
    else{ 
     text.setText("Set Default value here"); 
     } 

    // your code here 
0

通過這種方式,你可以從偏好得到默認值,如果沒有值是對應於您的首選項鍵的

SharedPreferences preferences=getSharedPreferences(preferencename, MODE_PRIVATE); 
String str=preferences.getString(key, defaultValue);