2012-03-21 7 views
0

私はアンドロイドコンテンツビューのプロパティを保存するためのアプリケーションを実装しました。どのようにアンドロイドコントロールのプロパティを保存しますか?

私はeditTextを有効にして無効にするためにチェックボックスを使用しました。ユーザーがチェックボックスをオンにすると、テキストビューの編集が有効になり、ユーザーがチェックボックスをオフにしてからテキストを編集できなくなります。私はそれのためのコードを実装しているランチ再ユーザーのアプリ

次のように場合はエディットテキストビューは、データを入力するために、次に使用可能として編集フィールドのpropertieが保存されますし、ユーザーが保存ボタンをクリック可能になります。

((EditText)findViewById(R.id.editText1)).setEnabled(false); 

    ((CheckBox)findViewById(R.id.checkBox1)).setOnCheckedChangeListener(new OnCheckedChangeListener() { 

     @Override 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
      if(isChecked){ 
      ((EditText)findViewById(R.id.editText1)).setEnabled(true); 
      } 
      else{ 
       ((EditText)findViewById(R.id.editText1)).setEnabled(false); 
      } 
     } 
    }); 

    ((Button)findViewById(R.id.button1)).setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      //here how to save the properties of editText1 and checkBox1 upto re-launch 


     } 
    }); 

ユーザーがアプリケーションを開いた場合、変更されたコンテンツのみが表示されます。

すべてのボディは

答えて

1

はこのような何か試してみてください....私を助けてください:

@Override 
protected void onSaveInstanceState(Bundle outState) { 
    outState.putBoolean("editTextState", editText.isEnabled()); 
    outState.putBoolean("checkBoxState", checkBox.isEnabled()); 
    super.onSaveInstanceState(outState); 
} 

@Override 
protected void onRestoreInstanceState(Bundle savedInstanceState) { 
    super.onRestoreInstanceState(savedInstanceState); 
    if (savedInstanceState != null) { 
     editText.setEnabled(savedInstanceState.getBoolean("editTextState")); 
     checkBox.setEnabled(savedInstanceState.getBoolean("checkBoxState")); 
    } 
} 

それともSharredPreferencesを使用することができます。あなたの活動に

:あなたが使用する必要がどのような

private EditText editText; 
private CheckBox checkBox; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    editText = (EditText) findViewById(R.id.editText1); 
    checkBox = (CheckBox) findViewById(R.id.checkBox1); 
    checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
      if (isChecked) { 
       editText.setEnabled(true); 
      } else { 
       editText.setEnabled(false); 
      } 
     } 
    }); 

    loadProperties(); 

    Button button = (Button)findViewById(R.id.button1); 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      saveProperties(); 
     } 
    }); 

} 

private void saveProperties() { 
    SharedPreferences.Editor editor = getSharedPreferences("PREFS_KEY", Context.MODE_PRIVATE).edit(); 
    editor.putBoolean("CHECK_BOX_STATE", checkBox.isChecked()); 
    editor.putBoolean("EDITEXT_STATE_STATE", editText.isEnabled()); 
    editor.commit(); 

} 

private void loadProperties() { 
    SharedPreferences prefs = getSharedPreferences("PREFS_KEY", Context.MODE_PRIVATE); 
    checkBox.setChecked(prefs.getBoolean("CHECK_BOX_STATE", false)); 
    editText.setEnabled(prefs.getBoolean("EDITEXT_STATE_STATE", false)); 
} 
+0

感謝を使用することですが、私は、ボタンのイベントで上記のコードを実装することができますか? –

+0

これらのメソッド(onSaveInstanceState、onRestoreInstanceState)は、アクティビティーが作成される前、およびそのアクティビティーが強制終了される前に呼び出されます。実際には、ボタンイベントでこの機能を実装する必要はありません。あなたのボタンが押されたときに情報を保存したいのであれば、sharedPreferencesを使うことができます。私の答えで上記の –

+0

のリンクを見つけることができます。 –

0

は次のとおりです。onSaveInstanceState(android.os.Bundle)

この方法は、例えば、あなたのコントロールのすべての情報を保存することがpossibileます。

もう一つの可能​​性は、あなたの答えのためのSharedPreferences

SharedPreferences settings = this.context.getSharedPreferences("myPreferences", 0); 
    // read stored value 
    String storedValue = settings.getString("aKey", null); 

    // store/override value 
    SharedPreferences.Editor editor = settings.edit(); 
    editor.putString("aKey", "aValue"); 
    editor.commit(); 
+0

保存ボタンをクリックしたときの適用方法button.pleaseはいくつかの説明を与えます –

+0

sharedPreferencesのコード例を追加しました。 @appservの例とこの例は、実行するのに十分なはずです。 –

関連する問題