新終極密碼

聚會團康小遊戲,打賭抽籤好工具

One Piece 海賊王

我是要成為海賊王的男人!

Wreck-It Ralph 無敵破壞王

「變好無望,壞也無妨,我只想做我自己」 感動推薦給曾經迷失方向的人們

Spartacus 斯巴達克斯

羅馬時代,身為一名競技場角鬥士的榮耀與卑微。熱血推薦!

Puffy 帕妃

大貫亞美 & 吉村由美

2013年6月20日 星期四

[Android] 按下 PositiveButton 時,如何控制 AlertDialog 關閉與否

一般來說,AlertDialog 內建三種按鈕方法,分別為 setPositiveButton, setNegativeButton, setNeutralButton,設計者可以根據不同的按鈕,實做個別的 onClickListener 來處理按鈕行為。但這三個按鈕按下後一致的結果就是:關閉 AlertDialog。這對於需要在按下按鈕進行一些資料判斷,若資料不符則不允許關掉 AlertDialog 的設計上,是一大麻煩。好在搜尋到網路上武林高手提供的解法,筆記於下。
   View view = View.inflate(this, R.layout.activity_indicate, null);
   final EditText edittextIndicate = (EditText)view.findViewById(R.id.edittext_indicate);
   
   AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
   alertDialog.setTitle("指定密碼");
   alertDialog.setMessage("輸入指定密碼");
   alertDialog.setCancelable(false);
   alertDialog.setView(view);
   alertDialog.setPositiveButton("OK", null); // 真正覆寫內容重新定義於下
   alertDialog.setNegativeButton("Cancel", null);
   
   final AlertDialog alert = alertDialog.create();
   alert.show(); // 取代原本的 alertDialog.show(); 必須在 button 存取之前呼叫
   Button button = alert.getButton(AlertDialog.BUTTON_POSITIVE);
   button.setOnClickListener(new View.OnClickListener() {
    
    @Override
    public void onClick(View v) {
     if(!"".equals(edittextIndicate.getText().toString().trim())) {
      finalNumber = Integer.valueOf(edittextIndicate.getText().toString().trim());
     
      alert.dismiss();
     }
    }
   });


首先是標準的 AlertDialog 定義內容,需注意此行,省略了 setPositiveButton 第二個參數 onClickListener 的實做,真正的實做定義於下方。
alertDialog.setPositiveButton("OK", null); // 真正覆寫內容重新定義於下


新建一個 AlertDialog alert,因為原本的 AlertDialog.Builder alertDialog 並沒有 dismiss() 方法。因此程式最後將會利用 alert.dismiss() 來關閉畫面。另外,也需要靠 alert.getButton() 方法取得 PositiveButton 的按鈕控制,這也是 AlertDialog.Builder 沒有提供的方法。特別注意的是,如同註解所示,alert.show() 必須在下一行 button 的存取前呼叫,否則會有 exception 出現。
   final AlertDialog alert = alertDialog.create();
   alert.show(); // 取代原本的 alertDialog.show(); 必須在 button 存取之前呼叫


定義一個 Button,並使用 alert.getButton(AlertDialog.BUTTON_POSITIVE) 取得控制。接著就是正常的 button.setOnClickListener 的定義了。在 onClick 的實做中,可以任意進行資料判斷,如果有需要關閉畫面,呼叫 alert.dismiss() 即可。
   Button button = alert.getButton(AlertDialog.BUTTON_POSITIVE);
   button.setOnClickListener(new View.OnClickListener() {
    
    @Override
    public void onClick(View v) {
     if(!"".equals(edittextIndicate.getText().toString().trim())) {
      finalNumber = Integer.valueOf(edittextIndicate.getText().toString().trim());
     
      alert.dismiss();
     }
    }
   });

[Android] 如何正確取得 AlertDialog 元件的 findViewById

一般正規的 Android layout 中,如需控制元件,首先需執行 findViewById 取得元件的控制入口,例如
  Spinner spinner = (Spinner)view.findViewById(R.id.spinner_player);
  EditText edittextPlayer = (EditText)view.findViewById(R.id.editText_player);

若元件所屬的 layout 被設定到 AlertDialog 之中呢?如果還是使用上述的呼叫方式,雖然 Eclipse 不會報錯,但執行時一旦操作元件,將會遇到 "null pointer" 的 exception。
需改寫成以下方式,第 2、3 行的元件必須使用第 1 行定義的 view 來呼叫 findViewById。
  View view = View.inflate(this, R.layout.activity_player, null);
  Spinner spinner = (Spinner)view.findViewById(R.id.spinner_player);
  EditText edittextPlayer = (EditText)view.findViewById(R.id.editText_player);
  
  AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
  alertDialog.setTitle("Player Setting");
  alertDialog.setMessage("Set the number of players");
  alertDialog.setCancelable(false); // 避免點選畫面其他地方而關閉 AlertDialog
  alertDialog.setView(view);
  alertDialog.setPositiveButton("OK", null);
  alertDialog.setNegativeButton("Cancel", null);
  alertDialog.show();

2013年6月5日 星期三

[雜耍] 狼來了!! 楊桃~ 種子盆栽


好像很有趣,來種看看!參考的是這位盆栽達人的網誌「ㄚ啟的部落格」

奮力嗑完三顆楊桃,才獲得這些為數不多的種子。有些種子在水果刀的比劃下硬生生被截斷,平常不會有任何感覺,在收集種子時卻格外難過他們的遭遇。

徹底把種子上殘留的果肉洗乾淨,開始進行浸泡動作。每天都要換水,些微沒有附著的果肉雜質可藉此清除。

[2012/8/18 浸泡第 1 天]



教學說浸泡 7 ~ 10 天。我的楊桃種子浸泡到了第 8 天,有幾顆冒出了芽,於是我決定今天就是動土大典!到大賣場旁邊的盆栽園,買了一包培養土,鋪滿容器約九分滿。播種時記得要將芽點 (較尖的那一端) 朝下種植。平均播種於容器後,再鋪上白色小石子,看起來質感大增!

[2012/8/26 播種第 1 天]




播種第 7 天,首株小綠苗破土而出,看到他們從土裡突破石子挺拔而出,我想只有親自栽培的人才能感受到生命力的旺盛。

[2012/9/2 播種第 7 天]



第 9 天,值得紀念的一刻!第一株擺脫種殼,張開雙臂迎接世界的楊桃小苗!

[2012/9/4 播種第 9 天]



第 15 天,短短兩個禮拜,幾乎全部種苗都已經亭亭玉立,一片欣欣向榮。

[2012/9/11 播種第 15 天]



如果問我種植小盆栽的過程獲得什麼,我想應該就是深深感受到生命力的旺盛與追求生存的感動。起初擔心小石頭鋪太多,會導致綠苗無法撐起,最後確定是我多慮;大自然的生命力,絕對是超乎我們想像的。

2013年6月2日 星期日

[開箱] IRON GYM 門上單槓

打從幾年前為國效勞開始,便覺得拉單槓是很有成就感的事情,只要每天持續練習 (每件事不都是如此?!),可以從入伍 1 下都拉不起來,變成輕鬆 6 下鑑測合格。 (當然有技巧的姿勢可以減少不必要的施力)

純粹為了練練手臂,入手了新玩具 IRON GYM 門上單槓,$400 有找。千萬別誤會我想練成圖片那位阿諾先生的美味 N 塊肌,這是癡人說夢。



使用門上單槓最重要的條件是:

1、門框上緣需要有一定長度的凸出,如此方能穩定地架住門上單槓。 (商品說明需要 1 cm 門框凸出,我的門框凸出 0.7 cm,使用起來尚穩固)

2、門框寬度不能超過最長的橫桿長度。 (本款為 93 cm)

3、門框夠力嗎? (鋼門大可放心,木門或紙糊的門... 請斟酌)

4、乖乖地順上順下就好,千萬別花式上槓,因為門上單槓就是要靠重力才會牢固。


所有的零件。



完成組裝。(隨附的小工具不太中用,最後還是派出正港的扳手與螺絲起子才鎖緊)



「掛」上門框,當施以重力時,反作用力將門上單槓緊緊地固定在門上。



最後,派出咱們第一名模 --- 熊寶褒 --- 實際操作一次給大家看看。

2013年5月29日 星期三

[料理] 布丁般滑嫩的蒸蛋

如何用電鍋做出吹彈可破的滑嫩蒸蛋呢?蒸蛋內的水量與外鍋的水量都是關鍵,太過則整體緊實口感不佳;不及則難以完全凝固。蒸蛋創意可無限發揮,加魚板、加蛤蜊、加香菇,或是蒸蛋內的水用昆布、柴魚高湯代替,是個可以充滿無限驚喜的簡單料理。

經過本人多年來... 不... 多日來的研究,做了多次實驗,吞了無數蛋之後,歸納出一個簡單的「滑嫩蒸蛋」比例,說明如下。

備註 1:調味料份量請依個人喜好添加組合
備註 2:蒸蛋絕對不能用隔熱碗,否則蒸到天荒地老也不會凝固!! (我傻過一次)

材料:龜甲萬鮮美露、鹽、蛋一或兩顆、雞粉


1、砸~蛋~下~料~ 混蛋!!



2、加入水 (或高湯)。第一個重點:水與蛋液的比例為 2:1



3、倒入蒸蛋容器,由於我沒有一般的玻璃圓碗,改拿樂扣樂扣的玻璃四方盒來當容器。第二個重點:電鍋外鍋的水量,大約放大同電鍋米杯 (180ml) 的 2 格 (共 10 格)。不過容器的寬淺也會影響成型時間,大家自己拿捏一下囉~



4、起鍋!輕輕舀起一匙滑溜蒸蛋,送入口中用舌頭輕易地將他們打散,品嚐從嘴裡散發出來的美味香氣

2013年5月27日 星期一

[電影] 無敵破壞王 Wreck-It Ralph



「無敵破壞王」,初次聽到片名,直覺是星爺周星馳又有新電影了嗎?無敵風火輪 + 破壞之王?原來我大錯特錯,這是一部非常具有深度與廣度,由迪士尼推出的 3D 動畫電影。

電影中最經典的一句台詞:「變好無望,壞也無妨」,不僅一次敲中我的心裡,甚至在我心中迴盪許久。每個人都不需要否定自己,只要你心存正向,你的存在與作為,對於這個世界必定有所意義。

論深度,從主角原先鬱悶的反派角色,一直到試圖幫助 Vanellope 完成夢想與發現自己真正的存在價值的心情轉折,故事流暢不拖泥帶水。

論廣度,電影中不同場景 (遊戲) 之間的連貫,行雲流水之間充滿了創意與幽默,讓人會心一笑,也讓人眼睛一亮。遊戲中不時穿插的早期電玩畫面,更讓經歷過那個年代的我們浮現溫暖的回憶。

若你曾經迷失自己,曾經找不到自己的價值,誠心推薦這部電影,Ralph 會告訴你:「變好無望,壞也無妨」只需要好好做自己,扮演好自己的角色,即使只能為他人帶來幸福與快樂,那也值得了。