Полезные примеры Android

Полезные примеры Android
Android — Управление сеансом

Сеанс поможет вам, когда вы хотите сохранить данные пользователя за пределами вашего приложения, чтобы, когда пользователь в следующий раз воспользуется вашим приложением, вы можете легко получить обратно его данные и выполнить соответствующие действия.

Это можно сделать разными способами. Но самый простой и удобный способ сделать это — через Общие настройки .

Общие настройки

Общие настройки позволяют сохранять и извлекать данные в виде пары ключ-значение. Чтобы использовать общие предпочтения, вы должны вызвать метод getSharedPreferences (), который возвращает экземпляр SharedPreference, указывающий на файл, содержащий значения предпочтений.

SharedPreferences sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);	

Вы можете сохранить что-нибудь в общих настройках, используя класс SharedPreferences.Editor. Вы вызовете метод редактирования экземпляра SharedPreference и получите его в объекте редактора. Его синтаксис —

Editor editor = sharedpreferences.edit();
editor.putString("key", "value");
editor.commit();

Помимо метода putString, в классе редактора доступны методы, позволяющие манипулировать данными внутри общих настроек. Они перечислены следующим образом —

N Режим и описание
1

apply()

Это абстрактный метод. Он зафиксирует ваши изменения обратно из редактора в вызываемый вами объект sharedPreference.

2

clear()

Он удалит все значения из редактора

3

remove(String key)

Он удалит значение, ключ которого был передан в качестве параметра

4

putLong(String key, long value)

Это сохранит длинное значение в редакторе предпочтений

5

putInt(String key, int value)

Он сохранит целочисленное значение в редакторе предпочтений.

6

putFloat(String key, float value)

Он сохранит значение с плавающей запятой в редакторе предпочтений.

Управление сеансом через общие настройки

Чтобы выполнять управление сеансом из общих предпочтений, нам нужно проверить значения или данные, хранящиеся в общих предпочтениях в методе onResume . Если у нас нет данных, мы запустим приложение с самого начала, поскольку оно было установлено заново. Но если у нас есть данные, мы начнем с того места, где их оставил пользователь. Это продемонстрировано в примере ниже —

Пример

В приведенном ниже примере демонстрируется использование управления сеансом. Он создает базовое приложение, которое позволяет вам войти в систему в первый раз. И затем, когда вы выйдете из приложения, не выходя из системы, вы вернетесь в то же место, если снова запустите приложение. Но если вы выйдете из приложения, вы вернетесь на главный экран входа в систему.

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

Шаги Описание
1 Вы будете использовать среду разработки Android Studio для создания приложения Android в пакете com.example.sairamkrishna.myapplication.
2 Измените файл src / MainActivity.java, чтобы добавить код выполнения для добавления кода сеанса.
3 Создайте новое действие и назовите его second.java. Отредактируйте этот файл, чтобы добавить код выполнения для добавления кода сеанса.
4 Измените файл res / layout / activity_main.xml, чтобы добавить соответствующий XML-код.
5 Измените файл res / layout / second_main.xml, чтобы добавить соответствующий XML-код.
7 Запустите приложение, выберите работающее устройство Android, установите на него приложение и проверьте результаты.

Вот содержимое MainActivity.java .

package com.example.sairamkrishna.myapplication;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
EditText ed1,ed2,ed3;
Button b1;
Intent in;
public static final String MyPREFERENCES = "MyPrefs" ;
public static final String Name = "nameKey";
public static final String Phone = "phoneKey";
public static final String Email = "emailKey";
SharedPreferences sharedpreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ed1=(EditText)findViewById(R.id.editText);
ed2=(EditText)findViewById(R.id.editText2);
ed3=(EditText)findViewById(R.id.editText3);
b1=(Button)findViewById(R.id.button);
sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String n  = ed1.getText().toString();
String ph  = ed2.getText().toString();
String e  = ed3.getText().toString();
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putString(Name, n);
editor.putString(Phone, ph);
editor.putString(Email, e);
editor.commit();
in = new Intent(MainActivity.this,second_main.class);
startActivity(in);
}
});
}
}

Вот содержимое second_main.java .

package com.example.sairamkrishna.myapplication;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class second_main extends Activity {
Button bu=null;
Button bu2=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_main);
bu=(Button)findViewById(R.id.button2);
bu2=(Button)findViewById(R.id.button3);
}
public  void logout(View view){
SharedPreferences sharedpreferences = getSharedPreferences(MainActivity.MyPREFERENCES, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.clear();
editor.commit();
}
public void close(View view){
finish();
}
}

Вот содержимое activity_main.xml .

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Shared Preference"
android:id="@+id/textView"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:textSize="35dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tutorials Point"
android:id="@+id/textView2"
android:layout_below="@+id/textView"
android:layout_centerHorizontal="true"
android:textSize="35dp"
android:textColor="#ff16ff01" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText"
android:layout_below="@+id/textView2"
android:layout_marginTop="67dp"
android:hint="Name"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText2"
android:layout_below="@+id/editText"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:hint="Pass" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText3"
android:layout_below="@+id/editText2"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:hint="Email" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="login"
android:id="@+id/button"
android:layout_below="@+id/editText3"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp" />
</RelativeLayout>

Вот содержимое second_main.xml .

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Logout"
android:onClick="logout"
android:id="@+id/button2"
android:layout_gravity="center_horizontal"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="191dp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Close"
android:onClick="close"
android:id="@+id/button3"
android:layout_below="@+id/button2"
android:layout_centerHorizontal="true"
android:layout_marginTop="69dp" />
</RelativeLayout>

Вот содержимое Strings.xml .

<resources>
<string name="app_name">My Application</string>
</resources>

Вот содержимое AndroidManifest.xml .

<? xml version = "1.0" encoding = "utf-8" ?> <manifest xmlns: android = "http://schemas.android.com/apk/res/android" package = "com.example.sairamkrishna.myapplication" >
<application android: allowBackup = "true" android: icon = "@ mipmap / ic_launcher" android: label = "@ string / app_name" android: theme = "@ style / AppTheme" >
<activity android: name = ".MainActivity" android: label = "@ string / app_name" >
<intent-filter> <action android: name = "android.intent.action.MAIN" /> <category android: name = "android.intent.category.LAUNCHER" /> </intent-filter>
</activity>
<activity android: name = ".second" > </activity> 
</application> </manifest>

Попробуем запустить ваше приложение. Я предполагаю, что вы создали свой AVD при настройке среды. Чтобы запустить приложение из студии Android, откройте один из файлов активности вашего проекта и щелкните Значок запуска Eclipseзначок « Выполнить» на панели инструментов. Студия Android устанавливает приложение на ваш AVD и запускает его, и если с вашей настройкой и приложением все в порядке, оно отобразит следующее окно эмулятора —

Руководство по управлению сеансом Anroid

Введите свое имя пользователя и пароль (введите все, что угодно, но помните, что вы вводите) и нажмите кнопку входа в систему. Это показано на изображении ниже —

Руководство по управлению сеансом Anroid

Как только вы нажмете кнопку входа в систему, вы попадете на экран приветствия. Теперь ваша информация для входа хранится в общих настройках.

Руководство по управлению сеансом Anroid

Теперь нажмите кнопку « Выйти без выхода из системы» , и вы вернетесь на главный экран, а в файле настроек будет показано, как показано ниже.

Руководство по управлению сеансом Anroid

Если вы откроете файл myPref.xml как файл заметки, это будет следующим образом

Руководство по управлению сеансом Anroid

Если вы нажмете кнопку выхода из системы, значения предпочтений будут стерты. и если вы ввели другие значения в качестве входных данных, он будет вводить эти значения как предпочтительные в XML.

Select the fields to be shown. Others will be hidden. Drag and drop to rearrange the order.
  • Image
  • SKU
  • Rating
  • Price
  • Stock
  • Availability
  • Add to cart
  • Description
  • Content
  • Weight
  • Dimensions
  • Additional information
  • Attributes
  • Custom attributes
  • Custom fields
Click outside to hide the compare bar
Compare