2012年2月5日 星期日

[TQC+ Android] 1-3 點餐系統 Use AlertDialog



按下進入點餐系統的Button時 , 跳出AlertDialog呈現菜單列表 , 每樣餐點旁並有CheckBox提供勾選並可再次修改 , 這題在測驗對AlertDialog的使用 , 和AlertDialog.Builder 中 setMultiChoiceItems() 的使用

setMultiChoiceItems(CharSequence[] items, boolean[] checkedItems, DialogInterface.OnMultiChoiceClickListener listener)

items陣列內的Text內容會條列出現在AlertDialog中 , Text旁邊會出現Check , 而Check會根據checkeditems陣列的內容值來決定是否被預先選取 , 然後傳入listener做為多重選取的事件 , 以下是程式碼。


package COM.TQC.GDD01;


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

public class GDD01 extends Activity
{
  private Button button1;
  private TextView text1;
  private String[] s1 = {"美味蟹堡","義式香腸堡","蔬菜水果堡","香蕉潛艇堡","香烤雞肉堡"};
  
  AlertDialog.Builder AB;
  boolean[] checkState = new boolean[5];  
  
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    
    button1 = (Button) findViewById(R.id.button1);
    text1 = (TextView) findViewById(R.id.text1);
    
    AB = new AlertDialog.Builder(this);
    AB.setTitle(R.string.str2);
    AB.setPositiveButton("確認", DOnClickListener);
    AB.setNegativeButton("離開", DOnClickListener);
    AB.setMultiChoiceItems(s1, checkState , DOnMultiChoiceClickListener);
    
    button1.setOnClickListener(new Button.OnClickListener()
    {      
     @Override
      public void onClick(View v)
      {      
      AB.show();
      }
    });
  }
  
  DialogInterface.OnMultiChoiceClickListener DOnMultiChoiceClickListener = new DialogInterface.OnMultiChoiceClickListener()
  {
 @Override
 public void onClick(DialogInterface dialog, int which, boolean isChecked)
 {  
  // AlertDialog.Builder 會同步更新 checkState陣列的值
 }   
  };
  
  DialogInterface.OnClickListener DOnClickListener = new DialogInterface.OnClickListener()
  {   
 @Override
 public void onClick(DialogInterface dialog, int which)
 {
  // TODO Auto-generated method stub
  switch(which)
  {
   case DialogInterface.BUTTON_POSITIVE:    
    checkFood();
    break;
   
   case DialogInterface.BUTTON_NEGATIVE:    
    break;
  }
 }

 private void checkFood()
 {
  // TODO Auto-generated method stub    
  text1.setText(R.string.str2);
  for(int i=0 ; i< checkState.length ; i++)
  {
   if(checkState[i]) text1.append("\n" + s1[i]);   
  }  
 }
   
  };
}


接下來是main.xml


  
  





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


[TQC+ Android] 1-2 電費計算機 Use Spinner




在選擇伏特 , 輸入安培及輸入每天使用時數與每度電費後 , 按下寄算電器每月電費按鈕後即可在下方顯示金額 , 並可依模擬器語系變更程式語系 , 這題要測驗的是Android多國語系的設定 , 也就是values資料夾的命名 , values-en 和 values-zh , 將中英文介面中所要顯示的文字分別宣告在兩個資料夾內的string.xml中 , 再來就是 RelativeLayout的配置  , 以下是程式碼。





package COM.TQC.GDD01;


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


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);
        
        MyOutcome = (TextView) this.findViewById(R.id.respond);
        
        input_a = (EditText) this.findViewById(R.id.input_a);
        input_hr = (EditText) this.findViewById(R.id.input_hr);
        input_m = (EditText) this.findViewById(R.id.input_m);
        
        submit = (Button) this.findViewById(R.id.submit);
        submit.setOnClickListener(BOnClickListener);
        
        sp = (Spinner) this.findViewById(R.id.input_v);         
        ArrayAdapter adpAdapter = ArrayAdapter.createFromResource(this, R.array.option_vs , android.R.layout.simple_spinner_item);
        adpAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        sp.setAdapter(adpAdapter); 
        sp.setOnItemSelectedListener(SOnItemSelectedListener);        
    }
    
    TextView MyOutcome;
    EditText input_a , input_hr , input_m;
    Spinner sp;
    Button submit;
    int volt , sum;
    final int VOLT_110v = 0 , VOLT_220v = 1;    
    
    public Button.OnClickListener BOnClickListener = new Button.OnClickListener()
    {
     
  @Override
  public void onClick(View v)
  {
   // TODO Auto-generated method stub
   int ampere = Integer.parseInt(input_a.getText().toString());
   int hour = Integer.parseInt(input_hr.getText().toString());
   int month = Integer.parseInt(input_m.getText().toString());
      
   sum = (int) (volt * ampere / 1000 * hour * 30 * month);
   MyOutcome.setText("$ "+sum);   
  }     
    };
    
    public Spinner.OnItemSelectedListener SOnItemSelectedListener = new Spinner.OnItemSelectedListener()
    {
  @Override
  public void onItemSelected(AdapterView arg0, View arg1, int arg2,
    long arg3) {
   // TODO Auto-generated method stub
   switch(arg2)
   {
     case VOLT_110v:      
      volt = 110;
      break;
     case VOLT_220v:
      volt = 220;
      break;
   }   
  }

  @Override
  public void onNothingSelected(AdapterView arg0) {

   // TODO Auto-generated method stub   

  }     

    };

}

再來是 main.xml



    

        

        

        

        

        

        

        

        

        

        



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



[TQC+ Android] 1-1 整存整付記算機 A calculating machine





設計一個計算機應用程式 , 在輸入本金和年利率與存款期數 , 按下計算本利和的按鈕 , 級會在下方顯示本利和 , 後這題很容易 , 考驗Layout的設定而已 , 以下是程式碼。


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
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        amount = (TextView) this.findViewById(R.id.amount);        
        
        input_lend = (EditText) this.findViewById(R.id.input_lend);
        input_rate = (EditText) this.findViewById(R.id.input_rate);
        input_number = (EditText) this.findViewById(R.id.input_number);        
        submit = (Button) this.findViewById(R.id.submit);
        
        submit.setOnClickListener(BOnClickListener);
      
    }    
    
    TextView amount;
    EditText input_lend , input_rate , input_number;
    Button submit;
    
    public Button.OnClickListener BOnClickListener = new Button.OnClickListener()
    {       
     @Override
  public void onClick(View v)
  {
   // TODO Auto-generated method stub
      int lend = Integer.parseInt(input_lend.getText().toString());
      int number = Integer.parseInt(input_number.getText().toString());
      double MonthRate = Double.parseDouble(input_rate.getText().toString())/ 12 / 100;
            
      int sum = (int) (lend * Math.pow(MonthRate + 1 , number));
   
      amount.setText("本利和為:"+sum);   
  }     
    };    
}

接下來是 main Layout

    
    
    
    
    
    
    
    







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





2012年2月1日 星期三

[雜談] 你在外島當參一嗎? (人事行政士)







一般來說軍中許多學長流傳這麼一句話 , 平時不接參一 , 戰時不接參二三 , 打死不接參四 , 為什麼這麼說呢? 其實軍中的各參級業務平常負責處理許多不同的文書工作 , 對外要負責應付上層的幕僚長官 , 對內要應付許多裝檢任務還有弟兄的權益問題 , 所以許多時候參級業務的工作量和壓力並不比帶兵的士官們來的小 , 熬夜加班趕業務 , 回到寢室看到大家都睡著的情況是相當常見的。


而是否擔任參級業務通常是下部隊之後長官挑選和指派的 , 因為要處理文書業務還會操作到電腦 , 所以一般來說都是找大專以上的人來擔任 , 這部分我倒覺得只要肯學的話學歷是沒啥關係的 , 最重要的還是態度和細心程度  , 參一主管人事:假  調職  晉陞  退伍  福利 從年頭忙到年尾 , 一般來說連上不會設置參二業務 , 參三主管訓練:製作課表 送訓 下基地或是有演訓任務的話才會忙 , 參四主管後勤:裝備 , 經理 , 伙食相關 平常雜事不少 , 另外高裝檢會特忙


從上面看來業務士從頭忙到尾平常業務真的很操 很賽 很雜 , 所以有事先打聽過的弟兄都不會想接參級業務 , 特 別 是 參 一 !! 通常可以選擇的話很多人都會拒絕 , 但是有時候軍令如山長官要你接就是接了 , 難道可以SAY NO嗎? 這個時候就皮繃緊一點做好這份業務吧....除了被指派當參一 , 當你籤條上面寫的是人事行政之類的話 , 極大的可能下部隊就是參一業務了 , 唯一的例外情況就是....部隊已經有不少人在接這個業務了 , 所以你有可能就是掛這個軍職而做別的事情 , 不過發生這種情況的機率很小....


在本島和外島同樣的業務所要包辦和處理的事情多少會不同 , 因為我是在外島擔任營參一所以文章的介紹也著重在這部分 , 當籤條是抽到外島心情就很差了沒想到還是當參一 , 或許心情又更差了(其實人事行政相關的籤只會出現在資料處理的預士和預官抽籤得時候 , 普通的義務役抽籤應該不會抽到這個職缺 , 所以要不要當參一這個決定其實你自己就能選擇避開他 , 知道參一很操還去考的話 , 那能怪誰呢? 不過通常學歷要是比同儕出色的話下部隊通常也是被挑去當參級業務....如果還被選到就真的是命) , 或許你也不用太怨嘆 , 因為在外島當參一還是有好處的 , 我就看到有人當得很開心 , 當然普遍來說還是常常在抱怨 哈


之前提到過參一的業務是管人事的 , 俗話說有人就有事 , 所以跟人相關的許多雜事大家第一個就想到參一 , 所以參一的業務又雜又多 , 一整年都在忙 , 尤其是當要處理志願役年度考績的時候更是忙呀....這些很雜的業務坦白說當我全部都上手和做過之後也快要退伍了 , 很多時候遇到沒處理過的業務也是見招拆招和問人囉 , 當參一常常會遇到下面的情況。


你會常常需要和長官接觸 , 你有許多公文需要給長官會辦 , 上至指揮部幕僚下至連上幹部 , 連上幹部比較好處理大家都熟了而且你也是幫連上的弟兄們服務所以通常是不會被刁難的 , 接下來的關卡就是營部 , 你在連級擔任文書上面還有營級的話公文的會辦就另外需要他們的章 , 他們好不好搞就牽扯到很多因素 , 包含本身個性 當下心情 你所屬的連隊黑不黑 你老闆黑不黑都有關係 , 一般的情況下連參一的公文和資料到這邊就OK了 , 剩下交給人事官去處理吧 , 所以和你的人事官打好關係吧 , 他算是你業務上的老闆。


另外還有一個人和你的業務是息息相關的 , 他就是營參一 , 營參一??? 簡單來說他就是在營級幫人事官處理文書和雜事的業務士 , 人事官不在的時候通常也是營參一幫他處理業務 , 所以和他打好關係之後要處理事情都會比較好辦些。當然有時候還要去指揮部找更高階的長官 , 而且甚至是別的科組的長官 , 不過這種情況不多就是了 , 簡單來說你的那些上頭對口決定你接這個業務平常的心情是好是壞....


有時候被罵被幹是免不了的 , 這個時候就訓練你的抗壓性和EQ管理能力了....所以你是個火爆浪子不能被罵的話是不適合接這種業務的 , 甚至不適合當兵......哈 , 不過沒有事是絕對的 , 都有好有壞 , 那當參一有甚麼好處呢? 雖然說屎事不少但是也真的有好處的~


之前提到說你的業務和弟兄的權益和福利是相當有關係的 , 舉幾個例子來說:最重要的就是放假嘛~ 而且在外島返台假是累積起來放的 , 所以久久一次的返台假是那麼的重要又珍貴的 , 因為不像本島幾乎每個禮拜都放假 ,  所以你當然會希望返台假的日期是你想要的 ,  而參一的其中一項職責就是排假 , 所以參一的其中一個好處就是假是自己排的 ,  而且其他弟兄也會因為想喬假而對你特別好 , 此外長官還有弟兄都常常會詢問你問題和你要資料 , 或請你幫忙解決問題 , 所以一個不出包處理能力強的參一是很有趴數的 , 和這類福利權益相關的業務還真多和參一有關係 , 既然你的業務內容真的是重要又特別 , 所以相對你的權力也很大....我相信因為這樣連上的弟兄會對你不錯 , 很少人想拿自己的福利來開玩笑 , 甚至是一種畏懼的關係 , 所以有句話叫參一大十梯 , 這句話相信你下部隊之後就會有體認了(前提是你業務不會出包又能幫弟兄解決問題)。


另外如果你不喜歡跟部隊操課 , 不喜歡做戶外的雜事 , 不喜歡時間一到被抓去跑步運動的話 , 那這種負責室內文書的業務士是正投你意的 , 有時候加班還可以報補休 , 隔天早上就不用跟著部隊起來早點名 , 這也是有人為什麼一下部隊就想接業務的其中原因了。


當參一也可以學到不少人際互動的應對進退 , 畢竟人就是你的業務 , 對上要和長官建立良好的互動 , 對內要幫連上的弟兄處理難題 , 要怎麼讓大家對你建立起信任度這些都是可以在出社會之前好好學習的部分。


題外話如果你擔任營參一呢? 這個職務其實蠻單純的 , 彙整營內參一繳上來的資料 , 幫人事官處理一些雜事 , 幫營級長官跑跑假單 , 真的比較難的部分就是人事官休假的時候你要暫代他的職務 , 不然平常的工作內容也是蠻單純的。




講到這邊希望你對這個職務有大致上的瞭解 , 不過各單位的處事風格都不太一樣 , 實際情況還是要下部隊才瞭解 , 祝你好運了 , 甚麼都是假的 平安退伍才是真的!!!!









相關文章:



2012年1月31日 星期二

[雜談] 你抽到 馬防部 莒光指揮部 了嗎?




這是一篇遲來的心得文 , 是一段關於在莒光這座小島上當兵的回憶....和上面那張圖是沒關係的 , 我相信很多人抽到這個地方都不知道他在哪邊? 而在你回家Google之後或許會有緣看到這篇文章 , 在網路上關於這座島的資料或許不多 , 那讓我來稍微介紹一下 , 有相關的問題可以留言


首先當你真的抽到外島籤的時候 , 不用太沮喪 , 換個角度想也許你這輩子會出國去玩 , 會熱血的環島 , 會去攀登玉山 , 但是也不見得會去外島走一遭 , 所以趁當兵這個時候去外島修身養性一下 , 趁著站哨的時候眺望外島美景好好規畫一下當完兵之後的人生 , 我相信這也是一種難得的體驗 , 好吧....或許這個還不足以說服你看開點 , 那我再來說點比較實際的 , 在外島當兵普遍來說比在本島來得輕鬆 , 因為外島督導少且演習任務簡單 , 也許我這樣講你現在還不能體會 , 但是這部分將會關係到每天你的操課作息和....心情 , 舉我的例子來說同樣是下基地 , 在外島最累的部分也只是從連上走到靶場 , 大概一公里不到的路程....那在本島的話....光是移防可能會走到掛點?! 這邊不是在戰哪邊當兵比較好 , 只是想讓抽到外島的你開心點 , 回到這篇文章的主題 , 相信你對這島有相當程度的疑問吧 , 希望看完這篇文章能讓你心裡有個底 , 不用那麼不安!


首先莒光指揮部他是隸屬在馬祖防衛部底下的 , 所以當你才台灣坐船吐到了南竿之後(當然也可以坐飛機 , 國家提供給你4張公費船票和4張公費機票 , 但是第一次下部隊到南竿一定是坐船) , 很不幸的你還要坐一個小時的小白船到莒光島 , 有趣的是莒光島是由西莒島和東莒島所組成的 , 沒下部隊之前寫了一篇介紹 [雜談] 馬防部 莒光指揮部 步兵營 人事行政士 (馬祖 莒光島) , 如果你的籤條是寫步兵營 機械步兵連(機步連)或砲二連 , 那你的營區就在東莒島 , 恭喜你....抽到隻好籤 , 東莒島上民家商家多 , 島上的居民都蠻熱情的 , 也有遊客中心 ,  所以吃的選擇也多 , 島休的話一定要去走走欣賞美景 , 尤其是東莒燈塔和小雯姐的奶凍....




關於東莒的遊記 , 網路上應該不少所以這邊不多作介紹 , 我只是想告訴你 , 趁著在這邊當兵的時候多多蒐集對這座島上的一切 , 你不能保證退伍之後你還會再踏上這座小島 , 所以這一切都是你值得珍惜的回憶~ 除了以上這些之外 , 在東莒當兵最重要的是........東島爽
至少真的比在西莒當兵的弟兄要爽要涼 , 很不幸的 我 就 是 在 西 莒 當 兵....


西莒島也是莒光指揮部所在 , 島上長官比較多自然就比較精實點 , 同樣的理論來說這不就是本島和外島當兵的差別嗎??? 除了剛剛提到的兩個連隊 , 籤條上其他的連隊都在西莒 , 小弟我就是在莒光指揮部底下的步兵營營部連當人事士 , 所以這邊文章主要是介紹西莒島上當兵的生活~




食:

在外島當兵你就不用想說部隊的三餐會有多好吃了 , 因為補給的關係所以每餐的伙食中軍罐頭可能有一或兩道 , 島上的商家可選擇的餐點樣式也不多 , 不過排骨飯 , 雞排飯和一些炸物還是有的 , 義大利麵也有.......但是是調理包 , 不過也不用太悲觀 , 有時候補給過來的食材還是不錯的 , 而且部隊的伙房要是有高手的話 , 相信也不會讓你難過 , 最重要的是久了也習慣了....時間能治療一切。




衣:


我相信你平常看氣象新聞的話 , 是不會注意馬祖的氣溫和天氣的 , 直到你抽到這隻籤之後....對於島上的氣候 , 冬天的時候是非常冷的 , 下雨寒風效應讓這邊常出現5度以下的低溫 , 站夜哨得時候必須包得緊緊得才不會凍傷 , 而夏天來說有沒有比本島熱? 坦白說我倒是覺得沒特別感覺 , 只是氣候開始轉熱的時期會比本島來的晚些 , 另外我在這邊當兵其實很少碰到下雨天 , 很意外的是只碰到一次的停水 , 因為島上的特殊氣候和地形 , 必須靠海水淡化機獲得飲用水 , 而居民自家也會抽取地下水應付緊急狀況 , 所以我遇到的那次停水也是因為海水淡化機出問題 , 慘的是那個時候是11月 , 我一輩子都忘不了我們拿著礦泉水洗澡的困境....最有趣的是連長還"演練"給我看。




住:


我沒有每個連隊都去過 , 就我的印象中因為營部連和步兵營營部是一體的(這一點和本島又大不同了 , 很多連隊和營部是跨縣市的) , 所以建築算是很新的 , 本部連看起來就很舊 , 但是伙食很好 , 因為長官們都在這邊用餐 呵呵 , 步二連就潮濕了點 , 幹訓班簡陋了點小了點  , 另外島上的連隊還會分據點 , 所以你要是被分配駐在據點的話那和連上大部分的弟兄生活作息都不會在一起 , 如果你被分配到據點的話........恭喜 , 據點的生活作息簡單又輕鬆 ,  而我一直到快退伍的時候陪我們輔導長夜巡查哨才有機會走進去別連隊的據點 , 令人意外的是住的地方設備還不錯。




行:


島上任何一個地方從指揮部為出發點出發的話 , 20分鐘以內都可以到達 , 所以要是你不急的話 , 就多走路吧順便看看島上的風景 , 島上是沒有公車的而且也不必要....真的要趕路的話 , 計程車是你的好夥伴 , 不計人頭一趟50元 , 值得一提的是在島上開計程車真的很好賺....軍人在島上是不能騎自行車的 , 當然你也不會想騎 , 更不用說機車了....




娛樂:


在外島是見紅放假的 ,  這個時候你才會有自己得時間去做休閒娛樂 , 西莒島上有兩家圖書館 , 一家在港口附近的青帆村 , 雜誌還蠻多的也很新這令我蠻驚訝的 , 不過位置離砲一連比較近 , 在山上還有一個活動中心裡面也有一個圖書館和健身中心 , 這邊平常會有連隊來管理 , 所以要是你平常的職務就是在活動中心當"保全"的話 , 你真是爽到翻了 , 另外靠近港口有一座敬恆國小 , 裡面有籃球場 , 所以也有機會可以從事球類運動




幾個重點


1.在外島當兵有外島加給 , 不過對於義務役的來說不多


2.冬天記得把能保暖的傢伙都準備好


3.義務役有四次放返台假的機會 , 至於天數是依據你在馬祖服役天數長短按比例換算的 , 簡單來說扣掉你受訓和軍訓折抵的日子就等於服役天數 , 天數越多的話按比例給你的返台假就越多 , 不過還是軍訓折抵比較實在....開始後悔當初沒休滿軍訓了嗎?


4.和你們連上的參一打好關係吧 , 相信我在你當兵的期間一定會有問題要詢問他 , 甚至遇  到只有他能替你處理的難題


5.打開你的心去享受外島的美好 , 去珍惜這份回憶






相關文章:


Google Analytics