-2

私は共有設定でセットアップクラスを作成し、最初に開いたapkでユーザーはデフォルト値を使用し、編集後に更新値でそれが必要な場合は編集します。私の問題は、apk を再度開いて、設定 apk 表示のデフォルト値を作成しない場合です。それ以外の場合は、古い設定が表示されます。設定が存在する場合は、古い保存設定で onCreate の設定を更新します (デフォルト値ではありません)。これを作成するにはどうすればよいですか?優先順位が存在する場合は、設定を共有するために何かが必要です...そして値を読み取ります...それ以外の場合はデフォルトを使用します

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();
4

2 に答える 2

0

このようにして、設定キーに対応する値がない場合、設定からデフォルト値を取得できます

 SharedPreferences preferences=getSharedPreferences(preferencename, MODE_PRIVATE);
 String str=preferences.getString(key, defaultValue);
于 2012-12-28T08:16:44.383 に答える
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
于 2012-12-28T08:13:07.693 に答える