2015年12月27日 星期日

[Android] 抓到螢幕的長寬像素

兩個都可以抓的到width 和 Height

使用時機不太一樣



   WindowManager wm = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);
  Display display = wm.getDefaultDisplay();
  Point point= new Point();
  display.getSize(point);
  int screenHeight  =point.y;
                int screenWidth  =point.x;


我是寫在Fragment 裡面的,要寫在Activity 那getActivity()要拿掉

  Display display = getActivity().getWindowManager().getDefaultDisplay();
   DisplayMetrics metrics = new DisplayMetrics();
  display.getMetrics(metrics);
  int screenHeight = metrics.heightPixels;
                int screenWidth = metrics.widthPixels;
                //這樣也可以
                final int h = getResources().getDisplayMetrics().heightPixels;
  final int w = getResources().getDisplayMetrics().widthPixels;

2015年12月8日 星期二

[Android] Visibility屬性

Visibility 屬性有三個

  • 可見 Visible
  • 不可見 Invisible
  • 隱藏 Gone
設置方法 :

XML : android:visibility = "visible"
Java : View.setVisibility(VIEW.VISIBLE);


差別:

Invisible : 元素保有空間,只是你看不見

Gone : 元素沒有預留空間,當不存在

2015年10月27日 星期二

[Android]利用LayoutInflater動態添加View

http://blog.csdn.net/guolin_blog/article/details/12921889

[C#] DataTable 實現SQL Distinct


DataTable BoardbyMenu = MyDataTable.DefaultView.ToTable(true, "Menu_ID");


來看一下 ToTable的參數:

ToTable ( bool distinct , params string[] columnNames ) ;

第一個true 過濾重複資料

第二個是欄位名稱,可放多個欄位 寫法:

new string[] { "Menu_ID , name" }




2015年10月15日 星期四

[Jquery]Ajax表單POST 多次

Ajax表單無故POST 兩次 , 弄了好久...

 發現罪魁禍首 是這隻.js jquery.unobtrusive-ajax

因為included 2 次 所以也POST 2 次

參考這篇

2015年10月12日 星期一

[C#][MVC] 資料寫進DB時,檢查是否有Null

create 是要準被塞進DB裡的物件 當create裡面屬性有 null 時 , 就給空值 , 防止DBNull 錯誤發生
IList properties = typeof(ProductSize).GetProperties().ToList();
  foreach (var p in properties)
  {
     if (p.GetValue(create) == null && p.PropertyType == typeof(string))
     {
         p.SetValue(create, "");
      }
  }

2015年10月5日 星期一

[C#]MVC 關於刪除資料RemoveRange Remove

var PTryReport = db.ProductTryReport.Where(x => x.ProductSize_ID == Check.ID);
  if (PTryReport.Any())
  {
    //原本這樣寫 會出錯交易失敗錯誤
    //因為刪除del就會改變PTryReport的值
    foreach (var del in PTryReport)
    {
      db.ProductTryReport.Remove(del);
      db.SaveChanges();
    }
  }
//理想的寫法 用 RemoveRange 一次刪除全部資料
 if (PTryReport.Any())
 {
     db.ProductTryReport.RemoveRange(PTryReport);
     db.SaveChanges();
                                   
  }

2015年9月17日 星期四

[C#] Split 分割字串

用法一 :最普通的字串分割

split() 括號記得用單引號包起來


            string tmp = "AA#BB#CC";
            string[] strSplit = tmp.Split('#');
            string GetValue = strSplit[0]; // 拿到 AA
            GetValue = tmp.Split('#')[1]; //直接拿到字串 BB
            //多字元分割
            string tmp2 = "AA#|BB$$CC#|";
            string[] strSplit2 = tmp2.Split(new string[] { "#|","$$" }, StringSplitOptions.RemoveEmptyEntries);
            string GetValue2 = "";
            foreach(string s in strSplit2)
            {
                GetValue2 += s + " "; //拿到 AA BB CC
            }

             //20160311 新增 分割換行的寫法
             string[] NewLine = tmp.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
             
             //textarea 會把換行符號轉成\n 所以也可以這樣寫
             string[] NewLine2 = tmp.products.Replace("\n","|").Split('|');
             

2015年8月6日 星期四

[Android]初學 使用Intent在Activity傳值(二)

Bundle的傳值,只是單純的A-->B , B-->C 單向傳值 

不像上一篇講到的AB互傳溝通

因此Bundle傳值時,給出的畫面是一個新的、乾淨的初始畫面

範例:



[Android]初學 使用Inten在Activity傳值(一)

Main畫面:

點下widget1按鈕,會將 "from Main" 帶到 Second畫面

Second畫面 :

點上一頁按鈕,會回傳 "from widget1"到Main
如果不是點上一頁按鈕兒是透過其他方法回到前一頁,在Main會顯示 "無參數"

startActivityForResult()除了傳值之外,還會回傳一個requestCode
所以Main要加入onActivityResult()方法,來接收辨別是哪個Activity回傳的requestCode


參數一定是從A-->B , B-->A AB兩個Activity在溝通
傳回參數的時候,只會接收參數,畫面不會刷新成預設畫面


最後要記得在AndroidManifest.xml 註冊 Activity
<activity android:name=".SecondActivityName"></activity>



2015年8月5日 星期三

[Android]初學-控制項應用



  1. 按下按鈕,顯示EditView輸入的內容和選到的CheckBox
  2. 顯示框出現,利用RadioGroup選擇Show出訊息或隱藏訊息
  3. 按下清除按鈕,EditView、CheckBox 回復初始狀態






2015年8月3日 星期一

[Android] 基本Layout屬性



版面方向

android:orientation vertical :縱向 版面由上到下horizontal:橫向

寬高設定

android:layout_width
android:layout_height

fill_parent:寬或高滿版
wrap_content:寬或高自動調整,顯示完整內容
match_parent:同fill_parent

設定View的相對位置

android:layout_gravity

設定View內容的位置

android:gravity




2015年7月23日 星期四

[Javascript]頁面刷新、導頁的常見做法



  • 刷新現在所在頁面,相當於Client端按下F5
           location.reload()

           history.go(0)
  •  若要回到上一頁 可以寫成
           history.go(-1)
  •  回到上一頁並刷新 
           history.back()
  •  跳轉到指定頁面 
          location.href=url

[AngularJS]初學 ng-show 和 ng-hide


ng-show 和 ng-hide  沒有指定初始值 , 值為false

所以 ng-show=false 被隱藏

         ng-false=false 顯示


應用:
  1. 可以利用變數來控制True , False
  2. 可以使用ng-model 綁定select checkbox 等等


[AngularJS]初學 練習


這篇是看 男丁格爾 的教學,練習的產物

在藍色框框點兩下,可以進入編輯模式,編輯音樂家的譯名、原名和年齡

在叉叉的地方點兩下,可以把那筆資料砍掉 (●’ω`●)

有空再來貼 和資料庫互動的CODE 唄~~ ( ̄︶ ̄)





2015年7月22日 星期三

[AngularJS] ng-click 的用法

要寫angularJS 除了要引用它的JS外,還必須要利用ng-app 初始化這個範圍的程式

EX : <html ng-app> , <body ng-app> , <div ng-app>

也可以在初始化時,指定模組(Model)

EX : <body ng-app="modelTest"> , <div ng-app="modelTest">

接著要用 ng-controller 指定controller , 這裡宣告為 MsgController


ng-init : 設定初始值

2015年5月25日 星期一

高雄三天兩夜 捷運趴趴造

Day 1

5/29 時間 行程 備註
19:00 搭高鐵 前往左營
21:00 抵達左營 前往凹子底
21:40 瑞豐夜市 吃晚餐 巨蛋站

Day 2

5/30 時間 行程 備註
9:00 早餐
10:30 義大OutLay
  • 8501 左營站上車 新光三越1號出口3號月台
  • 8502 凹子底捷運站 住商部動產前搭車 4:10 5:30 6:40
18:00 義大-->回程
  • 8502 義大購物廣場C區大門口 ---> 凹子底捷運站 4:10 5:30 6:40
  • 8503 高雄文化中心下車 4:20 5:30 6:20
  • 義大接駁車資訊
19:00 前往中央公園-城市光廊 痞子英雄拍攝場景
19:30 前往愛河 吃晚餐 尋找丹丹
21:00 愛河之心 看夜景 居酒屋 看夜景

Day 3

5/31 時間 行程 備註
9:30 早餐 可以去凹子底森林公園逛逛
11:00 高美館 在凹子底搭紅35a公車
12:30 民和茶屋/上林茶屋
14:00 三多商圈/火車站逛逛
16:15 前往左營 回台北 5點發車


行程地圖


2015年5月11日 星期一

[javascript] replace全部的指定字元

javascript 的replace 只能替換掉第一個找到的字元

var str ="Hello Guest , Guest Hello !" ;
alert(str.replace("Hello" , "Hi"));


如果想要整串字串的指定字元被替換掉, 就要用正規寫法(RegExp)
來完成


 
var str ="Hello Guest , Guest Hello !" ;
alert(str.replace(/Hello/g , "Hi"));

var str2 = "AA \ BB \ CC";
var new =str2.replace(/\\/g , "_");
alert(new);

2015年4月14日 星期二

申請Facebook app ID


最近一直在搞 FaceBook,本來和我很不熟的FB ,瞬間看他 超 不 順 眼 的 (不~~)

剛好有空(卡)閒(關)時間,記一下申請App ID 的方法

至於設定 有空再來弄XD

(雖然不知道何月何日FB又要來更新一下)

1. 先進到Facebook Developers 頁面 https://developers.facebook.com/apps

2.點擊註冊 然後在註冊按鈕的位置 會出現一個Create a New App 的按鈕

   一樣點下去

3.會跳出視窗 填好 App名稱、命名空間和分類 按Create App ID

   田下驗證碼就OK了 ~~

  命名空間只能填小寫英文 不然會出錯(下面的圖是錯誤示範XD)











2015年4月13日 星期一

FB Tag好友 發分享文到塗鴉牆


先說說前置作業,這功能一共要向Facebook申請兩個權限

一個是Taggable Friends ,另一個是 publish_actions



要使用這個功能,必須要先到 Status & Review 頁面,提交APP 供FB審核通過,才能使用

審核的時間最長約7天,需用英文說明你的APP並截圖,才會過關

詳細設定方式請參考 此篇文章 

 申請教學 https://www.ptt.cc/bbs/Web_Design/M.1408956880.A.98D.html

實作範例程式碼 我是參考 這篇

查了些資料 希望會成功 !!!

附上英文參考資料 :https://github.com/sauce/guide/wiki/Facebook%27s-approval-process#publish-actions

2015/4/14 終於有頭緒了 不枉費今天身體不適 努力打起精神瘋狂GOOGLE  T__T