Урок 33. SharedPreferences – сохранение данных в приложениях | Уроки Android Studio

В этом уроке начинаем обзор способов сохранения данных в android приложениях. Начнем с SharedPreferences.

SharedPreferences – постоянное хранилище на платформе Android, используемое приложениями для хранения своих настроек, например.

Почитайте также: SharedPreferences. Сохранение данных в постоянное хранилище Android

Исходный код примера – под видео:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
    <EditText
        android:id="@+id/etText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <requestFocus>
        </requestFocus>
    </EditText>
    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <Button
            android:id="@+id/btnSave"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Save">
        </Button>
        <Button
            android:id="@+id/btnLoad"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Load">
        </Button>
    </LinearLayout>
</LinearLayout>
package info.fandroid.sharedpreferences;

import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    EditText etText;
    Button btnSave, btnLoad;
    SharedPreferences sPref;

    final String SAVED_TEXT = "saved_text";


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        etText = (EditText)findViewById(R.id.etText);

        btnSave = (Button)findViewById(R.id.btnSave);
        btnSave.setOnClickListener(this);
        btnLoad = (Button)findViewById(R.id.btnLoad);
        btnLoad.setOnClickListener(this);

        loadText();
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.btnSave:
                saveText();
                break;
            case R.id.btnLoad:
                loadText();
                break;
            default:
                break;
        }
        

    }



    private void saveText() {
        sPref = getSharedPreferences("MyPref", MODE_PRIVATE);
        SharedPreferences.Editor ed = sPref.edit();
        ed.putString(SAVED_TEXT, etText.getText().toString());
        ed.commit();
        Toast.makeText(MainActivity.this, "Text saved", Toast.LENGTH_SHORT).show();

        
    }


    private void loadText() {
        sPref = getSharedPreferences("MyPref", MODE_PRIVATE);
        String savedText = sPref.getString(SAVED_TEXT, "");
        etText.setText(savedText);
        Toast.makeText(MainActivity.this, "Text loaded", Toast.LENGTH_SHORT).show();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        saveText();
    }
}

Больше уроков:

Уроки Android Studio: тут
Инструменты android разработчика: тут
Дизайн android приложений: тут
Уроки создания игр для android: тут
Основы программирования на JAVA: тут

<<Урок 32. Создаем простое приложение – интернет браузер для андроид

Урок 34. Работа с базами данных SQLite в Android>>

Коментарі: 4
  1. Andrew

    Виталий, для каких целей вы снимаете новые уроки, они полностью дублируют старые, этот урок точная копия УРОКА 33 “Хранение данных. Preferences” https://www.youtube.com/watch?v=13ucu3lETlc, я понял бы еще, если бы содержимое отличалось, так нет, точная копия.
    ПОЧЕМУ, на протяжение долгого времени на канале(и на сайте) не появляются новые уроки, а бездумно копируются старые, старые но с новым визуальным оформлением, здесь же ведь не кружок дизайнеров.
    Это очень ПЕЧАЛЬНО, надеюсь вы одумаетесь и начнете снимать уроки, которые будет интересно просматривать.
    С ув Ваш подписчик.

    1. Виталий Непочатов
      admin (автор)

      Спасибо за критику. Уроки обновляются для новой среды разработки. За это проголосовало много подписчиков канала в проводившемся опросе. Кроме этих уроков, на канале выходят новые серии по инструментам, дизайну, играм. Более половины публикуемых уроков – новые.

Додати коментар