1.综合使用RecycleView,CardView,Adapter实现一个宝宝相册,并将其加入到实验一形成的应用中,使得:用户成功登录后转到宝宝相册所在的主界面。还要求实现:用户单击对应的列表子项的不同部位时给出不同的Toast提示或者对话框提示:

  • 按钮:“添加成功”对话框
  • 其它:“相册详情”

2.修改(登录与注册)的登陆页面,为该页面增加一个复选框,用户可以通过点击的方式来进行选中和取消,选中时表示需要记住密码,下次登陆时应不需要再次输入密码;取消选中时表示不需要记住密码,之前保存的用户名和密码需要被清除,下次登陆时需要重新输入新的密码。getSharedPreferences()存储方法.

MainActivity.java

package com.example.myapplication1;import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity {private Button button1,button2;private EditText edit_name_login,edit_pwd_login;private EditText usernameET,passwordET;private CheckBox check_box;private SharedPreferences sp;private String password_register,username_register;//@Override/*protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);if(requestCode==222 && resultCode==111){username_register = data.getStringExtra("username");password_register = data.getStringExtra("password");edit_name_login.setText(username_register);edit_pwd_login.setText(password_register);}}*/@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button1=(Button)findViewById(R.id.button1);//映射activity_main.xml中的id=button1按钮button2=(Button)findViewById(R.id.button2);//映射activity_main.xml中的id=button2按钮edit_name_login = (EditText)findViewById(R.id.edit_name_login) ;edit_pwd_login = (EditText)findViewById(R.id.edit_pwd_login);check_box = (CheckBox)findViewById(R.id.check_box);//usernameET =(EditText)findViewById(R.id.edit_name);//passwordET = (EditText)findViewById(R.id.edit_pwd);sp = getSharedPreferences("config", Context.MODE_PRIVATE);boolean flag = sp.getBoolean("flag",false);check_box.setChecked(flag);if(flag){String newName = sp.getString("username","");String newPwd = sp.getString("password","");edit_name_login.setText(newName);edit_pwd_login.setText(newPwd);}//final String user = "Admin";//final String pass = "I love Android" ;//为两个按钮增加点击事件监听button1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String username = edit_name_login.getText().toString();String password = edit_pwd_login.getText().toString();//String password_register1 = passwordET.getText().toString().trim();//String username_register1= usernameET.getText().toString().trim();if(TextUtils.isEmpty(username) || TextUtils.isEmpty((password))){//if((username.equals(username_register))&&(password.equals(password_register))){String msg = "Wrong username or password.Please try again!";Toast toast = Toast.makeText(MainActivity.this,msg,Toast.LENGTH_SHORT);toast.setGravity(Gravity.CENTER,0,0);toast.show();}else{SharedPreferences.Editor editor = sp.edit();if(check_box.isChecked()){editor.putBoolean("flag",true);editor.putString("username",username);editor.putString("password",password);}else{// editor.putBoolean("flag",false).commit();editor.clear();}editor.apply();Intent intent = new Intent(MainActivity.this,RecycleViewActivity.class);startActivity(intent);}}});button2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent=new Intent(MainActivity.this,SubActivity2.class);// startActivityForResult(intent,222);startActivity(intent);}});}}

SplashActivity.java

package com.example.myapplication1;import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.Window;
import android.view.WindowManager;import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;public class SplashActivity extends AppCompatActivity {@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_splash);//加上这句设置为全屏不加只隐藏titlegetWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);new Handler().postDelayed(new Runnable() {@Overridepublic void run() {Intent mainIntent = new Intent(SplashActivity.this,MainActivity.class);startActivity(mainIntent);//动画效果overridePendingTransition(R.anim.abc_slide_in_bottom, R.anim.abc_slide_out_bottom);finish();}},3000);}
}

SubActivity1.java

package com.example.myapplication1;import android.app.Activity;
import android.os.Bundle;import androidx.annotation.Nullable;public class SubActivity1 extends Activity {@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_sub1);/* Button button1;button1=(Button)findViewById(R.id.button1);button1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String msg = "欢迎进入DIY!";Toast toast = Toast.makeText(SubActivity1.this,msg,Toast.LENGTH_SHORT);toast.setGravity(Gravity.CENTER,0,0);toast.show();}});*/}
}

SubActivity2.java

package com.example.myapplication1;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;import androidx.annotation.Nullable;public class SubActivity2 extends Activity {private Button button3;private String username,password,confirm_password;protected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_sub2);button3=(Button)findViewById(R.id.button3);final EditText usernameET,passwordET;final EditText confirm_passwordET;usernameET =(EditText)findViewById(R.id.edit_name);passwordET = (EditText)findViewById(R.id.edit_pwd);confirm_passwordET = (EditText)findViewById(R.id.confirm_edit_pwd);button3.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {username =usernameET.getText().toString().trim();password = passwordET.getText().toString().trim();confirm_password = confirm_passwordET.getText().toString().trim();if(TextUtils.equals(password,confirm_password)) {String msg = "您输入的用户名是" + usernameET.getText() + "\n" + "密码是" + confirm_passwordET.getText();Toast toast = Toast.makeText(SubActivity2.this, msg, Toast.LENGTH_SHORT);toast.setGravity(Gravity.CENTER, 0, 0);toast.show();Intent intent = new Intent();//intent.putExtra("username",username);//intent.putExtra("password",password);//setResult(111,intent);//finish();}else{String msg = "密码不一致!请重新输入!";Toast toast = Toast.makeText(SubActivity2.this, msg, Toast.LENGTH_SHORT);toast.setGravity(Gravity.CENTER, 0, 0);toast.show();}}});}
}

RecycleViewActivity.java

package com.example.myapplication1;import android.os.Bundle;import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;import java.util.ArrayList;
import java.util.List;public class RecycleViewActivity extends AppCompatActivity {List<AlbumInfo> mData;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_recycle_view);//视图RecyclerView recyclerView = (RecyclerView) findViewById(R.id.babyAlbumRecycleView_bt);//数据mData = getData();AlbumAdapter adapter = new AlbumAdapter(this,mData);//桥接LinearLayoutManager layoutManager = new LinearLayoutManager(this);recyclerView.setLayoutManager(layoutManager);//设置itemAnimatorrecyclerView.setItemAnimator(new DefaultItemAnimator());recyclerView.setAdapter(adapter);}private List<AlbumInfo> getData(){List< AlbumInfo> list = new ArrayList<>();int i;for (i= 0;i<3;i++){AlbumInfo album1 = new AlbumInfo("毡帽系列1", "此系列服装有点cute,像不像小车夫。", R.drawable.i1);list.add(album1);AlbumInfo album2 = new AlbumInfo("毡帽系列2", "此系列服装有点cute,像不像小车夫。", R.drawable.i2);list.add(album2);AlbumInfo album3 = new AlbumInfo("毡帽系列3", "此系列服装有点cute,像不像小车夫。", R.drawable.i3);list.add(album3);AlbumInfo album4 = new AlbumInfo("毡帽系列4", "此系列服装有点cute,像不像小车夫。", R.drawable.i4);list.add(album4);AlbumInfo album5 = new AlbumInfo("毡帽系列5", "此系列服装有点cute,像不像小车夫。", R.drawable.i5);list.add(album5);AlbumInfo album6 = new AlbumInfo("毡帽系列6", "此系列服装有点cute,像不像小车夫。", R.drawable.i6);list.add(album6);}return list;}}

AlbumAdapter.java

package com.example.myapplication1;import android.content.Context;
import android.content.DialogInterface;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.recyclerview.widget.RecyclerView;import java.util.List;public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder> {//缓存子项布局中的子控件private LayoutInflater mInflater;private List<AlbumInfo> mData;//缓存子项布局中的子控件static class ViewHolder extends RecyclerView.ViewHolder {//内部类,保存子项item布局实例,子项第一次出现时调用private ImageView img;private TextView title;private TextView info;private ImageButton btn;public ViewHolder(@NonNull View itemView) {super(itemView);img = (ImageView) itemView.findViewById(R.id.album_thumb);title = (TextView) itemView.findViewById(R.id.album_title);info = (TextView) itemView.findViewById(R.id.album_info);btn = (ImageButton) itemView.findViewById(R.id.album_btn);}}//构造函数,传递数据源public  AlbumAdapter(Context context, List<AlbumInfo> list){mInflater = LayoutInflater.from(context);mData = list;}//创建ItemView并缓存@NonNull@Overridepublic ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {View view = mInflater.inflate(R.layout.cardview_bt,parent,false);final ViewHolder holder = new ViewHolder(view);holder.btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {int position = holder.getAdapterPosition();showInfo(position,v.getContext());}});holder.img.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String msg = "What a lovely baby!";Toast toast;toast = Toast.makeText(v.getContext(),msg,Toast.LENGTH_SHORT);toast.setGravity(Gravity.CENTER,0,0);toast.show();}});holder.title.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {int position = holder.getAdapterPosition();AlbumInfo data = mData.get(position);Toast toast;toast = Toast.makeText(v.getContext(),"相册标题:"+data.getTitle(),Toast.LENGTH_SHORT);toast.setGravity(Gravity.CENTER,0,0);toast.show();}});holder.info.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {int position = holder.getAdapterPosition();AlbumInfo data = mData.get(position);Toast toast;toast = Toast.makeText(v.getContext(),"相册详情:"+data.getInfo(),Toast.LENGTH_SHORT);toast.setGravity(Gravity.CENTER,0,0);toast.show();}});return holder;}//绑定数据到itemview显示@Overridepublic void onBindViewHolder(@NonNull ViewHolder holder, int position) {AlbumInfo data = mData.get(position);holder.img.setImageResource(data.getThumbId());holder.title.setText(data.getTitle());holder.info.setText(data.getInfo());}@Overridepublic int getItemCount() {//子项一共有多少项return mData.size();}private  void showInfo(int position,Context context){AlbumInfo data = mData.get(position);new AlertDialog.Builder(context).setTitle(data.getTitle()).setMessage(data.getInfo()).setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}}).show();}
}

AlbumInfo.java

package com.example.myapplication1;public class AlbumInfo {private  String title;private  String info;private  int thumbId;public AlbumInfo(String title, String info, int thumbId) {this.title = title;this.info = info;this.thumbId = thumbId;}public String getTitle() {return title;}public String getInfo() {return info;}public int getThumbId() {return thumbId;}
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:gravity="center_horizontal|center_vertical"tools:context=".MainActivity"android:background="@drawable/background_login"><LinearLayoutandroid:layout_width="225dp"android:layout_height="351dp"android:background="@drawable/background_login_div"android:orientation="vertical"><TextViewandroid:layout_width="223dp"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:gravity="center"android:text="WELCOME"android:textSize="24sp"android:textStyle="bold" /><EditTextandroid:id="@+id/edit_name_login"android:layout_width="180dp"android:layout_height="wrap_content"android:layout_gravity="center"android:layout_marginTop="20dp"android:background="@drawable/edit_login"android:hint="请输入用户名" /><EditTextandroid:id="@+id/edit_pwd_login"android:layout_width="180dp"android:layout_height="wrap_content"android:layout_gravity="center"android:layout_marginTop="20dp"android:background="@drawable/edit_login"android:hint="请输入密码"android:inputType="textPassword" /><CheckBoxandroid:id="@+id/check_box"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:layout_marginTop="10dp"android:text="记住密码" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:gravity="center_horizontal|center_vertical"android:orientation="vertical"><Buttonandroid:id="@+id/button1"android:layout_width="90dp"android:layout_height="33dp"android:layout_weight="1"android:background="@drawable/background_button_div"android:text="login"android:textSize="16sp"/><Buttonandroid:id="@+id/button2"android:layout_width="90dp"android:layout_height="33dp"android:layout_marginTop="20dp"android:layout_weight="1"android:background="@drawable/background_button_div"android:text="register"android:textSize="16sp"/></LinearLayout></LinearLayout>
</LinearLayout>

activity_splash.xml

<?xml version="1.0" encoding="utf-8"?>
<!--suppress ALL -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent"><ImageViewandroid:id="@+id/imageView"android:layout_width="match_parent"android:layout_height="match_parent"android:src="@drawable/jimi1"android:scaleType="fitXY"/></LinearLayout>

activity_sub1.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent"android:weightSum="1"><TextViewandroid:id="@+id/textView3"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginTop="200dp"android:layout_weight="1"android:text="欢迎进入DIY!"android:textAlignment="center"android:textSize="24sp"android:textColor="@color/colorAccent"/></LinearLayout>

acitivity_sub2.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:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/signup_msg"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/signup_msg"android:textSize="25sp"android:textStyle="bold"android:layout_centerHorizontal="true"android:layout_marginTop="20dp"/><EditTextandroid:id="@+id/edit_name"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@id/signup_msg"android:layout_marginTop="30dp"android:hint="@string/editText5"android:singleLine="true" /><EditTextandroid:id="@+id/edit_pwd"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="@string/editText6"android:inputType="textPassword"android:layout_below="@id/edit_name"/><EditTextandroid:id="@+id/confirm_edit_pwd"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@id/edit_pwd"android:layout_marginTop="2dp"android:hint="@string/editText7"android:inputType="textPassword"tools:ignore="Autofill" /><TextViewandroid:id="@+id/sex_msg"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/sex_msg"android:layout_below="@id/confirm_edit_pwd"android:layout_marginTop="8dp"/><RadioGroupandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@id/confirm_edit_pwd"android:layout_toRightOf="@id/sex_msg"android:orientation="horizontal"><RadioButtonandroid:id="@+id/sex_male"android:layout_width="wrap_content"android:layout_height="wrap_content"android:checked="true"android:text="@string/sex_male" /><RadioButtonandroid:id="@+id/sex_female"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/sex_female" /></RadioGroup><TextViewandroid:id="@+id/academic_text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/academic_text"android:layout_below="@id/sex_msg"android:layout_marginTop="10dp"/><Spinnerandroid:id="@+id/academic_msg"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@id/sex_msg"android:layout_marginStart="7dp"android:layout_marginLeft="7dp"android:layout_marginTop="8dp"android:layout_toEndOf="@+id/academic_text"android:layout_toRightOf="@+id/academic_text"android:entries="@array/academic"android:fadeScrollbars="true"android:prompt="@string/academic_prompt"android:scrollIndicators="right"android:spinnerMode="dialog"></Spinner><LinearLayout android:orientation="horizontal"android:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/hobby_msg"android:layout_below="@id/academic_msg"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="爱好"/><CheckBoxandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/hobby_swim"android:text="游泳"/><CheckBoxandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/hobby_music"android:text="音乐"/><CheckBoxandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/hobby_book"android:text="读书"/></LinearLayout><Buttonandroid:id="@+id/button3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/button3"android:layout_centerHorizontal="true"android:layout_below="@id/hobby_msg"/>
</RelativeLayout>

activity_recycle_view.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="wrap_content"tools:context=".RecycleViewActivity"><androidx.recyclerview.widget.RecyclerViewandroid:id="@+id/babyAlbumRecycleView_bt"android:layout_width="match_parent"android:layout_height="match_parent" />
</LinearLayout>

cardview_bt.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_margin="5dp"
app:cardCornerRadius="5dp"
app:cardElevation = "2dp"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><ImageViewandroid:id="@+id/album_thumb"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_marginLeft="5dp"android:layout_weight="1" /><LinearLayoutandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="3"android:orientation="vertical"><TextViewandroid:id="@+id/album_title"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:textSize="16sp" /><TextViewandroid:id="@+id/album_info"android:layout_width="match_parent"android:layout_height="wrap_content"android:textSize="14sp" /><ImageButtonandroid:id="@+id/album_btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="end"android:background="@android:color/transparent"android:src="@drawable/btn" /></LinearLayout></LinearLayout>
</androidx.cardview.widget.CardView>

strings.xml

<resources><string name="app_name">Application</string><string name="editText5">用户名</string><string name="editText6">密码</string><string name="editText7">请确认密码</string><string name="signup_msg">注册</string><string name="sex_msg">性别</string><string name="sex_male">男</string><string name="sex_female">女</string><string name="button3">submit</string><string name="academic_text">学历</string><string name="academic_prompt">请选择</string><string-array name="academic"><item>博士</item><item>硕士</item><item>大学</item><item>高中</item></string-array>
</resources>

记住密码以及Android 列表的操作相关推荐

  1. 用 SharedPreferences 存储进行记住密码 和保存用户名(记住密码)

    1.什么是SharedPreferences 存储? SharedPreferences是Android平台上一个轻量级的存储类,用来存储少量数据时简单,便捷(保存记住密码状态,设置开关状态等). 以 ...

  2. Android 记住密码和自动登录界面的实现(SharedPreferences 的用法)(转载)

    SharedPreferences介绍: SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置参数,它是采用xml文件存放数据的,文件存放在" ...

  3. Android之记住密码与自动登陆实现

    本文主要讲述了利用sharedpreference实现记住密码与自动登陆功能 根据checkbox的状态存储用户名与密码 将结果保存在自定义的application中,成为全局变量 布局文件 < ...

  4. 【Android】_UI设计_登录页面(记住密码)

    目标: Android记住密码和自动登录界面的实现(SharedPreferences),具有一定的参考价值,感兴趣的小伙伴们可以参考一下. 登录页面设计(记住密码版) (一) SharedPrefe ...

  5. android记住密码

    android 当中有集中数据存储方式,比如说sqlite,还有一个比较轻量级的,那就是SharedPreferences,相当于web中的cookie,这个存储的原理就是通过键值对,进行存取 如果第 ...

  6. EF框架实现登录(记住密码+首页欢迎)+列表功能(增删改查)+过滤器

    一.登录 1.设计数据库 CREATE TABLE [dbo].[AdminUser]([Id] [int] IDENTITY(1,1) NOT NULL,[Name] [varchar](50) N ...

  7. android 自动登录机制,Android登录记住密码以及自动登录的实现

    记住密码以及自动登录的实现主要依赖于SharedPreferences类的使用,SharedPreferences是一个轻量级的存储类,用于存储一些小数据,比如登录账号密码以及状态信息等. 本文章只针 ...

  8. Android SharedPreferences登录记住密码

    SharedPreferences是Android中存储简单数据的一个工具类.可以想象它是一个小小的Cookie,它通过用键值对的方式把简单 数据类型(boolean.int.float.long和S ...

  9. android 如何做记住密码

    android 做记住密码,无非是存到首选项里面去,或者存到数据库里面,直接看下面的代码: 当用户点击记住密码时: 把用户名和密码保存在首项选中: SharedPreferences mremdnam ...

最新文章

  1. mysql返回惟一不同值_SQL/MySQL-选择不同/唯一但返回所有列?
  2. 工作流引擎Oozie(一):workflow
  3. linux shell 打印当前行号
  4. CodeForces - 1316E Team Building(状压dp)
  5. 如何给FormPanel表单中的元素赋值以及获取表单元素值
  6. 信息学奥赛一本通 1035:等差数列末项计算 | OpenJudge NOI 1.3 18
  7. 20172303 2018-2019-1《程序设计与数据结构》第7周学习总结
  8. Java单例模式:为什么我强烈推荐你用枚举来实现单例模式
  9. Leetcode每日一题:面试题17.12 binode
  10. python支持复数类型以下说法错误的是_关于Python的数字类型,以下选项中描述错误的是...
  11. 第五章 神经网络和误差逆传播法算法(BP)的推导
  12. 记《浪潮之巅》-第一版-6.IT业的罗马帝国--微软,Microsoft
  13. 冰河的大学生活,两个好基友:二神和波妞,哈哈,挺有意思的
  14. [教程]配置青鸟云Web服务器
  15. 【C++札记】类的分离式写法
  16. NDT(正态分布变换)算法学习
  17. python CV 趣味项目 答题卡识别
  18. 云看板生产管理系统,实时监控网关采集的数据
  19. NRF51822 小黄车智能锁 逆向工程
  20. python爬取电影天堂

热门文章

  1. hive函数 get_json_object的使用
  2. vue 在浏览器控制台怎么调试 谷歌插件vue Devtools
  3. 《Java 8 实战》(二)—— Lambda
  4. 《DSP using MATLAB》示例 Example 6.25
  5. 367. Valid Perfect Square
  6. 《需求分析与系统设计》读书笔记1
  7. 04.微博消息的语言检测
  8. VTL-vm模板的变量用法
  9. 千万级并发HAproxy均衡负载系统介绍
  10. C#编写一个抓网页的应用程序