我的Android之旅(十三)---SharedPreferences---实现不同界面的联动

    xiaoxiao2026-01-04  8

    MainActity中代码: package com.jerehedu.jereduch10; 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.CheckBox; import android.widget.EditText; public class SharedPreferencesActivity extends AppCompatActivity { private EditText user,pwd; private Button save; private CheckBox c1,c2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); user= (EditText) findViewById(R.id.user); pwd= (EditText) findViewById(R.id.pwd); save= (Button) findViewById(R.id.save); c1= (CheckBox) findViewById(R.id.c1); c2= (CheckBox) findViewById(R.id.c2); final SharedPreferences sp=getSharedPreferences("userInfo", Context.MODE_PRIVATE); save.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SharedPreferences.Editor editor = sp.edit(); editor.putBoolean("c11",c1.isChecked()); editor.putBoolean("c21",c2.isChecked()); editor.commit(); Intent intent=new Intent(SharedPreferencesActivity.this, SeetingsActivity.class); startActivity(intent); } }); } @Override protected void onStart() { super.onStart(); final SharedPreferences sp=getSharedPreferences("userInfo", Context.MODE_PRIVATE); Boolean c11=sp.getBoolean("c11",false); Boolean c21=sp.getBoolean("c21",false); c1.setChecked(c11); c2.setChecked(c21); } }

    布局文件:

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout 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" tools:context=".SharedPreferencesActivity" android:orientation="vertical"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入用户名" android:id="@+id/user" android:textSize="20sp"/> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入密码" android:textSize="20sp" android:id="@+id/pwd"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:id="@+id/ll"> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="记住密码" android:id="@+id/c1" /> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="自动登陆" android:id="@+id/c2"/> </LinearLayout> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/save" android:text="保存" /> </LinearLayout>

    跳转界面后的代码:

    package com.jerehedu.jereduch10; 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.Switch; import android.widget.TextView; public class SeetingsActivity extends AppCompatActivity { private Switch st1,st2; private Button saves; private SharedPreferences sp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_seetings); st1= (Switch) findViewById(R.id.st1); st2= (Switch) findViewById(R.id.st2); saves= (Button) findViewById(R.id.saves); final TextView showUser= (TextView) findViewById(R.id.showUser); sp=getSharedPreferences("userInfo",MODE_PRIVATE); saves.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SharedPreferences.Editor editor = sp.edit(); editor.putBoolean("c11",st1.isChecked()); editor.putBoolean("c21", st2.isChecked()); editor.commit(); Intent intent=new Intent(getBaseContext(),SharedPreferencesActivity.class); startActivity(intent); } }); } @Override protected void onStart() { super.onStart(); sp=getSharedPreferences("userInfo",MODE_PRIVATE); Boolean c11=sp.getBoolean("c11",false); Boolean c21=sp.getBoolean("c21",false); st1.setChecked(c11); st2.setChecked(c21); } }

    运行结果如下:

    点击保存按钮:

    跳转画面至:

    随后更改:记住密码与自动登陆的状态

    接着在返回,主页面的记住密码以及自动登陆的状态就会发生变化,从而实现二者的联动。实现数据的保存。

    转载请注明原文地址: https://ju.6miu.com/read-1305642.html
    最新回复(0)