2012年4月8日 星期日

Android-TQC105 MENU功能選單

學習重點:
(1)利用menu按鈕,改變setTitle



package COM.TQC.GDD01;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class GDD01 extends Activity {
 
 // ...
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    protected static final int MENU_ADD=Menu.FIRST;
    protected static final int MENU_DEL=Menu.FIRST+1;
    protected static final int MENU_ABOUT=Menu.FIRST+2;
    protected static final int MENU_Quit=Menu.FIRST+3;
        
    
    @Override
    //建立menu選單的項目
    public boolean onCreateOptionsMenu(Menu menu){
     super.onCreateOptionsMenu(menu);
     //新增menu選單,再利用onOptionsItemSelected擷取選單選擇項目,處理相對應的事件
     menu.add(0,MENU_ADD,0,getString(R.string.menu_add));
     menu.add(0,MENU_DEL,0,getString(R.string.menu_delete));
     menu.add(0,MENU_ABOUT,0,getString(R.string.menu_about));
     menu.add(0,MENU_Quit,0,getString(R.string.menu_exit));
          
     return true ; 
    }
    //menu被選擇執行後的事件處理
    public boolean onOptionsItemSelected(MenuItem item){
     //點選menu,出現四個選擇,以switch區分點選何項,設定title並繫結至其功能
     switch(item.getItemId()){
     
     case MENU_ADD:
      setTitleAdd();
     break;
     
     case MENU_DEL:
      setTitleDEL();
     break;
          
     case MENU_ABOUT:
      openAboutDialog();
     break;
     
     case MENU_Quit:
      openExitDialog();
     break;
     
     
     }
     return super.onOptionsItemSelected(item) ;
    }
    
    
    
    
    private void setTitleAdd() {
  // TODO Auto-generated method stub
  setTitle(getString(R.string.menu_add));
 }
 private void setTitleDEL() {
  // TODO Auto-generated method stub
  setTitle(getString(R.string.menu_delete));
 }
 //點選「關於」功能
    public void openAboutDialog()
    {     
     setTitle(getString(R.string.menu_about));
     AlertDialog.Builder dialog=new AlertDialog.Builder(this);
     dialog.setTitle(R.string.menu_add); //新增項目
     dialog.setMessage(R.string.menu_about_msg); //TQC+ Android認證題庫
     dialog.setPositiveButton(R.string.str_ok,new DialogInterface.OnClickListener()
     {      //確認 
   @Override
   public void onClick(DialogInterface arg0, int arg1) {
    // TODO Auto-generated method stub
    
   }
  });
       dialog.show();
       
    }
    //點選「離開」功能
    public void openExitDialog()
    {
        //開啟視窗詢問【是否確認離開系統?】,於訊息視窗點選「確認」後,關閉程式
     //於訊息視窗點選「取消」,則關閉此詢問視窗,則回到MENU功能選單畫面
     AlertDialog.Builder dialog = new AlertDialog.Builder(this);
     dialog.setTitle(R.string.menu_exit);//離開
     dialog.setMessage(R.string.menu_exit_msg); //是否確認離開系統
     dialog.setPositiveButton(R.string.str_ok,new DialogInterface.OnClickListener(){
           //確認     
   @Override
   public void onClick(DialogInterface arg0, int arg1) {
    // TODO Auto-generated method stub
    finish();
   }
      
     });
     dialog.setNegativeButton(R.string.str_cancel, new DialogInterface.OnClickListener() {
        //取消
   @Override
   public void onClick(DialogInterface arg0, int arg1) {
    // TODO Auto-generated method stub
     //dialog.dismiss();
   }
  });
      dialog.show();
       }
}

Android-TQC103點餐系統

學習重點:
(1)點選button呼叫AlertDialog
(2)將陣列的值放值AlertDialog中並將勾選的,顯示出來。



package COM.TQC.GDD01;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnMultiChoiceClickListener;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class GDD01 extends Activity {
  private Button button1;
  private TextView text1;
  private String[] s1={"美味蟹堡","義式香腸堡","蔬菜水果堡","香蕉潛艇堡","香烤雞肉堡"};
  private boolean[] chsBool={false,false,false,false,false,false}; //先將checkbox值設為false
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    
    findview();   //宣告物件
    setlistner();    
  }
  
private void findview(){
  // TODO Auto-generated method stub
  button1 = (Button) findViewById(R.id.button1);
     text1 = (TextView) findViewById(R.id.text1);
 }
  
private void setlistner() {
 // TODO Auto-generated method stub
 button1.setOnClickListener(new Button.OnClickListener()
    {
      @Override
      public void onClick(View v)
      {
       setdialog();
      }
     });
 }
 
 private void setdialog()
 {
  AlertDialog dialog=new AlertDialog.Builder(GDD01.this)
  //.setIcon(null)//設定無圖示
  .setTitle(getResources().getString(R.string.str2))
  .setMultiChoiceItems(s1, chsBool, new OnMultiChoiceClickListener()
  {
   public void onClick(DialogInterface dialog, int which, boolean isChecked)
   {
    
   }
  })
  .setPositiveButton("確認", new DialogInterface.OnClickListener() {
   public void onClick(DialogInterface dialog, int whichButton) {
    String selectedStr = "";
    
    
    for(int _i=0;_i< chsBool.length;_i++)
    {
     if(chsBool[_i] == true)
     {
      
     selectedStr=selectedStr+"\n"+s1[_i].toString();  //換行動作
            
     }
    }
    text1.setText("您點的餐有:"+selectedStr+"\n");
   }
  })
  .setNegativeButton("離開",  new DialogInterface.OnClickListener() {
   public void onClick(DialogInterface dialog, int whichButton) {
    
   }
  })
  .create();
  
  dialog.show();
      
 }
     
    } 
 

Android-TQC101整存整付計算機

學習重點:
(1)利用button將textview的值進行運作,並以settext方式呈現出計算的值


package COM.TQC.GDD01;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;


public class GDD01 extends Activity 
{
 public Button mButton1;
 public EditText mEditText1,mEditText2,mEditText3;
 
 public TextView mTextView1;
 
 
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        mButton1=(Button)findViewById(R.id.submit);
        mEditText1=(EditText)findViewById(R.id.input_lend);
        mEditText2=(EditText)findViewById(R.id.input_rate);
        mEditText3=(EditText)findViewById(R.id.input_number);
        mTextView1=(TextView)findViewById(R.id.amount);
        
        mButton1.setOnClickListener(new Button.OnClickListener(){

   @Override
   public void onClick(View v) {
        
          int a =Integer.parseInt(mEditText1.getText().toString());
          Double b =Double.parseDouble(mEditText2.getText().toString());
          int c =Integer.parseInt(mEditText3.getText().toString());
    
          b=b/100/12+1;
          
          Double count=b;
          for(int i=1;i< c;i++)
    {
     count=count*b;
    }
                    
          int area= (int) (a*count);
          
          String answer=Integer.toString(area); 
          mTextView1.setText("本利和為"+answer);
   }
         
        });      
        
    }
}