Как сохранить свойства элементов управления Android? - PullRequest
0 голосов
/ 21 марта 2012

Я реализовал приложение для сохранения свойств просмотра контента Android.

Я использовал флажок для включения и отключения editText. Когда пользователь устанавливает флажок, я включаю режим редактирования текста, а когда пользователь снимает флажок, затем отключает редактирование текста. Вот если пользователь установит флажок, то отредактируйте текстовое представление будет включено для ввода данных, затем пользователь нажимает кнопку «Сохранить», после чего свойство поля редактирования при включении сохраняет, если пользователь перезапустит приложение

Я реализовал код для него следующим образом:

 ((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


        }
    });

Если пользователь снова откроет приложение, появится только измененный контент.

Пожалуйста, помогите мне любым телом ....

Ответы [ 2 ]

1 голос
/ 21 марта 2012

Попробуйте что-то вроде этого:

@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 голосов
/ 21 марта 2012

Что вам нужно использовать: onSaveInstanceState (android.os.Bundle)

Этот метод позволяет сохранить, например, всю информацию ваших элементов управления.

Другой возможностью было бы использование 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();
...