2012年2月11日 星期六

[TQC+ Android] 2-3 匯率換算 Use SharedPreferences





當程式開啟 , 畫面要求使用者輸入匯率與台幣金額 , 輸入完成按下按鈕 , 即可在下方顯示計算結果 , 當下次開啟程式時會顯示上一次所輸入的匯率 , 這題使用 SharedPreferences類別將我們所輸入的資料儲存在 /data/data/package name/SharedPreferences_Name 下 , 記得在onPause()儲存 , onResume()取出就可以了 , 以下是程式碼。


package COM.TQC.GDD02;

import java.text.DecimalFormat;
import java.text.NumberFormat;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class GDD02 extends Activity
{
 public static final String PREF_ExchangeRate = "Exchange_Rate" ;
    
 private Button calcbutton ;
 private EditText fieldExchangeRate ;
 private EditText fieldNTD ;
 private TextView tv;
 
 /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {     
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        fieldExchangeRate = (EditText) this.findViewById(R.id.editText1);
        fieldNTD = (EditText) this.findViewById(R.id.editText2);
        tv = (TextView) this.findViewById(R.id.usd_result);
        calcbutton = (Button) this.findViewById(R.id.calc_btn);
        calcbutton.setOnClickListener(BOnClickListener);   
    }
    
    public Button.OnClickListener BOnClickListener = new Button.OnClickListener()
    {
  @Override
  public void onClick(View v)
  {   
   // TODO Auto-generated method stub
      try
      {   double NTD= Double.parseDouble(fieldNTD.getText().toString());
       double ExchangeRate= Double.parseDouble(fieldExchangeRate.getText().toString());
      
          NumberFormat NF = new DecimalFormat(".##");
       tv.setText(getText(R.string.usd_result) + NF.format(NTD / ExchangeRate));
   
      }catch(Exception e)
      {
       e.printStackTrace();
      }
  }     
    };  
    
    public void onResume()
    {
     super.onResume();
     SharedPreferences settings = getSharedPreferences(PREF_ExchangeRate, 0);
     fieldExchangeRate.setText(settings.getString(PREF_ExchangeRate, ""));   
     }
    
    public void onPause()
    {
     super.onPause();
     SharedPreferences settings = getSharedPreferences(PREF_ExchangeRate, 0);
     settings.edit().putString(PREF_ExchangeRate, fieldExchangeRate.getText().toString()).commit();
    }    
}




接下來是 main.xml檔

    
    
        
    
    
    
    


P.S. 題目中所要求的Variable和Method皆會保留 , 也會根據題目所要求的流程去實作 , 縱使題目要求繞遠路....

沒有留言:

張貼留言

Google Analytics