1. 程式人生 > >Android 的簡單資料儲存及讀取(非)

Android 的簡單資料儲存及讀取(非)

介面:介面

首先將介面所有控制元件在initView()中初始化,並且在MainActivity的onCreate(Bundle savedInstanceState)方法中呼叫initView()。

實現程式碼:


protected void onCreate(Bundle savedInstanceState) {
     
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        }



private void initView() {
  // TODO Auto-generated method stub
     EtTemp = (EditText)findViewById(R.id.tempEdit);
     EtTemp2 = (EditText)findViewById(R.id.tempEdit2);
     EtShidu = (EditText)findViewById(R.id.shiduEdit);
     EtShidu2 = (EditText)findViewById(R.id.shiduEdit2);
     EtLight = (EditText)findViewById(R.id.lightEdit);
     EtCo = (EditText)findViewById(R.id.CoEdit);
     
     BtnSave = (Button)findViewById(R.id.saveBtn);
     BtnReset = (Button)findViewById(R.id.resetBtn);
     BtnCencol = (Button)findViewById(R.id.cencolBtn);
 }

之後給每個按鈕控制元件新增事件響應

1、儲存按鈕事件響應

BtnSave.setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    String temp1 = EtTemp.getText().toString();     //獲取文字框的字串
    String temp2 = EtTemp2.getText().toString();
    String shidu = EtShidu.getText().toString();
    String shidu2 = EtShidu2.getText().toString();
    String light = EtLight.getText().toString();
    String co = EtCo.getText().toString();
    
    //Android提供的輕量級儲存類,儲存形式為:XMl  詳細見下方傳送門

    SharedPreferences mShare = getSharedPreferences("zhcs", Context.MODE_PRIVATE);  
    
    Editor mEdit = mShare.edit();
    mEdit.putString("最低溫度", temp1);
    mEdit.putString("最高溫度",temp2 );
    mEdit.putString("最低溼度",shidu );
    mEdit.putString("最高溼度",shidu2 );
    mEdit.putString("光照強度",light );
    mEdit.putString("CO臨界值",co );
    mEdit.commit();
    
    //這裡屬於Android的內部訊息提示,也是響應的一部分,屬於提示性響應。詳情見下方傳送門
  Toast.makeText(MainActivity.this, "儲存成功", Toast.LENGTH_SHORT).show();
    
   }
  });

2、重置按鈕事件響應

//實質就是將文字框制空值

 BtnReset.setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View arg0) {
    // TODO Auto-generated method stub
    EtTemp.setText("");
    EtTemp2.setText("");
    EtShidu.setText("");
    EtShidu2.setText("");
    EtLight.setText("");
    EtCo.setText("");
    
    Toast.makeText(MainActivity.this,"重置成功", Toast.LENGTH_SHORT).show();
   }
  });

3、讀取按鈕事件響應

 

BtnCencol.setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View arg0) {
    // TODO Auto-generated method stub
    SharedPreferences mShare = getSharedPreferences("zhcs", Context.MODE_PRIVATE);
    
    String temp1 = mShare.getString("最低溫度", "");
    String temp2 = mShare.getString("最高溫度", "");
    String shidu1 = mShare.getString("最低溼度", "");
    String shidu2 = mShare.getString("最高溼度", "");
    String light = mShare.getString("光照強度", "");
    String co = mShare.getString("CO臨界值", "");
    
    EtTemp.setText(temp1);
    EtTemp2.setText(temp2);
    EtShidu.setText(shidu1);
    EtShidu2.setText(shidu2);
    EtLight.setText(light);
    EtCo.setText(co);
    
   
    Toast.makeText(MainActivity.this,"讀取成功", Toast.LENGTH_SHORT).show();
   }
  });

綜上可見,Android的SharedPreferences類和Java中的文件的輸入輸出流有著異曲同工之妙,可對照學習。