功能需求:记录光谱数据(可通过记录的数据一次性开灯)
思路逻辑:
1-- 获取光谱数据
2-- 将数据一一设置到光谱进度条
控件:
Button保存数据按钮 Button展示数据按钮 AlertDialog-----弹出框
示例代码:
//初始化数组,容纳获取到的数据
private int[] data; data=new int[10];
//获取数据
data[0]=seek1.getProgress(); data[1]=seek2.getProgress(); data[2]=seek3.getProgress(); data[3]=seek4.getProgress(); data[4]=seek5.getProgress(); data[5]=seek6.getProgress(); data[6]=seek7.getProgress(); data[7]=seek8.getProgress(); data[8]=seek9.getProgress(); data[9]=seek10.getProgress();
//保存按钮点击事件
//读取到数据并进行保存
btnSave.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //读取到write.txt文件中 //版本一,读取到jason格式 StringBuilder value = new StringBuilder(); for (int i = 0; i <data.length ; i++) { if (i == data.length - 1){ value.append(data[i]); }else { value.append(data[i]).append(","); } } try{ String light = (String) SharedPreferencesUtil.getInstance().getValue("Light",""); JSONObject json = new JSONObject(); if (!light.isEmpty()){ json = JSONObject.parseObject(light); } json.put("record" + (json.size()),value); SharedPreferencesUtil.getInstance().putValue("Light",json); System.out.println(json.toString()); }catch(Exception e){ e.printStackTrace(); } } });
//获取数据进行展示
btnShow.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //JSONObject myObject; //获取到数据 Object light = SharedPreferencesUtil.getInstance().getValue("Light", ""); //System.out.println("this data--->" + light.toString()); myObject = JSON.parseObject((String) light); ArrayList<String> mArrayList = new ArrayList(); for (int i = 0; i < myObject.size() ; i++) { // arr[i] = "record"+i; mArrayList.add("record"+i); } String[] covertedArray = new String[mArrayList.size()]; covertedArray = (String[]) mArrayList.toArray(covertedArray); AlertDialog.Builder alertBuilder = new AlertDialog.Builder(MainActivity.this); alertBuilder.setTitle("历史记录"); String[] finalCovertedArray = covertedArray; alertBuilder.setSingleChoiceItems(covertedArray, index, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Toast.makeText(MainActivity.this, finalCovertedArray[i], Toast.LENGTH_SHORT).show(); //JSON.toJSONString(finalCovertedArray[i]).toString() record0 index=i; } }); alertBuilder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { String str = myObject.getString(finalCovertedArray[index]).toString(); String[] dataarr = str.split(","); seek1.setProgress(Integer.parseInt(dataarr[0])); seek2.setProgress(Integer.parseInt(dataarr[1])); seek3.setProgress(Integer.parseInt(dataarr[2])); seek4.setProgress(Integer.parseInt(dataarr[3])); seek5.setProgress(Integer.parseInt(dataarr[4])); seek6.setProgress(Integer.parseInt(dataarr[5])); seek7.setProgress(Integer.parseInt(dataarr[6])); seek8.setProgress(Integer.parseInt(dataarr[7])); seek9.setProgress(Integer.parseInt(dataarr[8])); seek10.setProgress(Integer.parseInt(dataarr[9])); SharedPreferencesUtil.getInstance().putValue("index",index); mHandler.sendEmptyMessage(12); alertDialog2.dismiss(); } }); alertBuilder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Object indexObject=SharedPreferencesUtil.getInstance().getValue("index",index); index=Integer.parseInt(indexObject.toString()); alertDialog2.dismiss(); } }); alertDialog2 = alertBuilder.create(); alertDialog2.show(); } });
说明:
1-- 保存格式
{"record1":"31,30,34,36,27,30,31,32,45,30",
"record2":"80,94,89,100,96,95,93,99,117,123",
"record0":"0,0,0,0,0,0,0,0,0,0",
"record4":"71,65,58,74,63,76,65,84,90,79",
"record5":"132,105,101,102,98,95,96,111,110,139",
"record3":"255,255,255,255,255,255,255,255,255,255"}
所以要把每个进度条获取到的数据进行获取,再重新组合
2-- 弹出框要求
点击确定时光谱数据进度条状态改变且点击了确定才改变,点击取消不改变,依旧记录上一个位置的记录