原构想:MainActivity 设置两个按钮,btn1——跳转Main2Activity通过复选框组选择并提交,btn2——跳转Main3Activity通过RecycleView显示选择结果。

主要经验:SharedPreferences 使用前要先声明,否则读取为Null;

1、Main2Activity.java

 1 package com.example.newrecycleviewdate;
2
3 import androidx.appcompat.app.AppCompatActivity;
4
5 import android.content.Intent;
6 import android.content.SharedPreferences;
7 import android.os.Bundle;
8 import android.view.View;
9 import android.widget.Button;
10 import android.widget.CheckBox;
11
12 import java.util.ArrayList;
13 import java.util.List;
14
15 public class Main2Activity extends AppCompatActivity {
16 private CheckBox chk;
17 private Button gotobtn;
18 private int[] id={R.id.ck1,R.id.ck2,R.id.ck3,R.id.ck4,R.id.ck5,R.id.ck6,R.id.ck7,R.id.ck8,R.id.ck9,R.id.ck10}; 数组储存重复的复选框ID,减少键盘磨损~
19 private List<String> list=new ArrayList<>();
20 SharedPreferences.Editor editor; //Editer 需先声明,否则取出数据为Null;
21
22 @Override
23 protected void onCreate(Bundle savedInstanceState) {
24 super.onCreate(savedInstanceState);
25 setContentView(R.layout.activity_main2);
26
27 gotobtn=findViewById(R.id.gotobtn);
28
29 gotobtn.setOnClickListener(new View.OnClickListener() {
30 @Override
31 public void onClick(View v) {
32 for (int i :id){ //循环检查复选框状态,选中则加入数组中
33 chk = findViewById(i);
34 if (chk.isChecked())
35 list.add(chk.getText().toString());
36 }
37 editor = getSharedPreferences("nameList",MODE_PRIVATE).edit();
38
39 editor.putInt("listsize",list.size());
40
41
42 for (int i=0 ;i< list.size();i++){
43 editor.putString("item"+i,list.get(i));
44 }
45
46
47 editor.commit();
48 startActivity(new Intent(Main2Activity.this,MainActivity.class));
49 }
50 });
51
52
53
54
55 }
56 }

2、Main3Activity

 1 package com.example.newrecycleviewdate;
2
3 import androidx.appcompat.app.AppCompatActivity;
4 import androidx.recyclerview.widget.LinearLayoutManager;
5 import androidx.recyclerview.widget.RecyclerView;
6 import androidx.recyclerview.widget.StaggeredGridLayoutManager;
7
8 import android.content.SharedPreferences;
9 import android.os.Bundle;
10 import android.widget.TextView;
11
12 import java.util.ArrayList;
13 import java.util.Arrays;
14 import java.util.List;
15
16 public class Main3Activity extends AppCompatActivity {
17 private RecyclerView resultRy;
18 private List<String> data = new ArrayList<>();
19 private int count;
20 //private String[] st={"strind","33fi","33022","dvikeke","88vj3k"};
21 SharedPreferences myNum; //SharedPreferences 先声明,否则出现取出数据为空的情况
22 private MyRecycleAdapter myRecycleAdapter;
23
24 @Override
25 protected void onCreate(Bundle savedInstanceState) {
26 super.onCreate(savedInstanceState);
27 setContentView(R.layout.activity_main3);
28
29 resultRy = findViewById(R.id.resultRy);
30 count=0;
31
32 myNum = getSharedPreferences("nameList",MODE_PRIVATE);
33
34 count= myNum.getInt("listsize",0);
35 for (int i =0;i<count;i++){
36 data.add(myNum.getString("item"+i,"fale"));
37
38 }
39
40
41
42
43 myRecycleAdapter = new MyRecycleAdapter(Main3Activity.this, data);
44 LinearLayoutManager manager=new LinearLayoutManager(this);
45 StaggeredGridLayoutManager stagger = new StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL);
46 resultRy.setLayoutManager(stagger);
47 resultRy.setAdapter(myRecycleAdapter);
48
49
50
51 }
52 }

SharedPreferences 数据传输中遇到的一些问题总结的更多相关文章

  1. C#网络编程数据传输中封装数据帧头的方法

    在C/S端编程的时候,经常要在C端和S端之间传数据时自定义一下报文的帧头,如果是在C/C++,封装帧头是一件很简单的事情,直接把unsigned char *强转为struct就行,但是在C#中,并没 ...

  2. AES和RSA混合加密技术在网络数据传输中的应用

    原文:http://www.fx361.com/page/2017/0110/519967.shtml          摘要:文章通过分析和比较AES加密算法和RsA加密算法的实现过程和各自的特点, ...

  3. 关于supersocker的数据传输中遇到的问题

    最近在学socket,在使用socket时数据的传输与接口都是byte,所以文本与文件的传输只要对传过来的byte处理好就可以. 但是在supersocket上,我却花费了很长的时间.原因如下: 1. ...

  4. 【转】深入理解Android中的SharedPreferences

    SharedPreferences作为Android中数据存储方式的一种,我们经常会用到,它适合用来保存那些少量的数据,特别是键值对数据,比如配置信息,登录信息等.不过要想做到正确使用SharedPr ...

  5. Android中的SharedPreferences存储

    一.前言 不同于文件的存储方式,SharedPreferences是使用键值对的方式来存储数据的.也就是说,当保存一条数据的时候,需要给这条数据提供一个对应的键,这样在读取数据的时候就可以通过这个键把 ...

  6. HTTP学习二:Web应用中的HTTP

    1 HTTP连接 1.1 TCP连接对性能的影响 TCP三次握手如下图: 如上图,建立一次TCP连接要经过三个步骤.HTTP是建立在TCP之上的,因此TCP连接的性能直接影响HTTP的性能. TCP影 ...

  7. Android入门(九)文件存储与SharedPreferences存储

    原文链接:http://www.orlion.ga/578/ Android系统中主要提供了三种方式用于简单地实现数据持久化功能,即文件存储.SharedPreference存储以及数据库存储.当然, ...

  8. Android源码分析之SharedPreferences

    在Android的日常开发中,相信大家都用过SharedPreferences来保存用户的某些settings值.Shared Preferences 以键值对的形式存储私有的原生类型数据,这里的私有 ...

  9. c#中序列化

    序列化(Serialization)是.NET平台的特性之一.1.为什么要序列化:首先你应该明白系列化的目的就不难理解他了.系列化的目的就是能在网络上传输对象,否则就无法实现面向对象的分布式计算.比如 ...

随机推荐

  1. Flutter环境搭建遇坑小结(二)

    在上一节中,已经对Flutter运行中始终卡在Running Gradle task 'assembleDebug'...,做出了解决方案,继续往下运行,但是新的问题又出现了: Failed to i ...

  2. (十二)整合 Shiro 框架,实现用户权限管理

    整合 Shiro 框架,实现用户权限管理 1.Shiro简介 1.1 基础概念 1.2 核心角色 1.3 核心理念 2.SpringBoot整合Shiro 2.1 核心依赖 2.2 Shiro核心配置 ...

  3. ACCESS手注

    ASP一般搭载ACCESS或者mssql 判断数据库类型 http://www.***.com?id=1 and (select count(*) from sysobjects)>0 http ...

  4. WPF 一种带有多个子集的类ComBox 解决方法

    在最近的工作中遇到很多,类似这种layUI风格的Combox: 因为WPF原本的控件,并不具备这种功能,尝试重写Combox的模板,发现无从下手. 于是尝试从多个控件组合来实现这个功能. 这里使用了P ...

  5. 小白搭建WAMP详细教程---apache、mysql、php的整合配置

    Apache与PHP整合 我们之前说过PHP能够解析PHP代码, 可是不服务于apache,apache能够获取接收浏览器的请求, 可是不能处理PHP代码, 要实现动态站点开发,就必须结合apache ...

  6. idea--忽略隐藏文件、文件夹的设置操作

    文章由来 公司同事在群里问了个问题,如下: 为了大家看清,将图特意贴出来: 这人还删除idae重装了下,哈哈,才到群里问的. 解决思路(按顺序) 1.我让他直接拉会,共享桌面我给看了下,首先是open ...

  7. Flink-v1.12官方网站翻译-P002-Fraud Detection with the DataStream API

    使用DataStream API进行欺诈检测 Apache Flink提供了一个DataStream API,用于构建强大的.有状态的流式应用.它提供了对状态和时间的精细控制,这使得高级事件驱动系统的 ...

  8. BZOJ1150 [CTSC2007]数据备份Backup 链表+小根堆

    BZOJ1150 [CTSC2007]数据备份Backup 题意: 给定一个长度为\(n\)的数组,要求选\(k\)个数且两两不相邻,问最小值是多少 题解: 做一个小根堆,把所有值放进去,当选择一个值 ...

  9. Codeforces Round #531 (Div. 3) E. Monotonic Renumeration (构造)

    题意:给出一个长度为\(n\)的序列\(a\),根据\(a\)构造一个序列\(b\),要求: ​ 1.\(b_{1}=0\) ​ 2.对于\(i,j(i\le i,j \le n)\),若\(a_{i ...

  10. 最小生成树 Prim和Kruskal

    感觉挺简单的,Prim和Dijkstra差不多,Kruskal搞个并查集就行了,直接上代码吧,核心思路都是找最小的边. Prim int n,m; int g[N][N]; int u,v; int ...