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