久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

dxp控件總結

時間:2019-05-13 18:11:31下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《dxp控件總結》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《dxp控件總結》。

第一篇:dxp控件總結

From 屬性:

1.MaximizeBox:是否顯示最小化按鈕。2.MinimizeBox:是否顯示最大化按鈕。

3.FormBorderStyle:窗口樣式,如FixedSingle:固定大小。4.StartPosition:初始顯示的位置,CenterScreen:中心。

事件:

TreeList: 屬性:

1.隱藏列頭:設置OptionsView中的ShowColumns改為false 2.隱藏每行最左邊的指示箭頭:設置OptionsView中的ShowIndicator改為false 3.隱藏父節點的指示箭頭:設置OptionsView中的ShowRoot改為false 4.selectImageList:給TreeList綁定imageCollection 5.OptionsView.ShowVertLines:是否顯示網格線(豎直的)6.OptionsView.ShowHorzLines:是否顯示網格線(水平的)

7.OptionsSelection.EnableAppearanceFocusedCell:選中單元格,是否改變該單元格外觀(選中后該單元格有邊線或不顯示邊線)

8.OptionsSelection.EnableAppearanceFocusedRow:選中行。是否改變該行的外觀(選中后該行底色是否變化)

9.OptionsView.ShowCheckBoxes:是否在每一行前顯示勾選框。

事件:

1.FocusedNodeChanged:焦點改變后觸發

2.treeList_Enter:第一次點擊是觸發,初始化控件時候,焦點會在第一行,此時就觸發。3.CustomNodeCellEdit:鼠標選中某個Cell時觸發,可以實現動態的設定Cell綁定的控件類型 4.MouseDoubleClick:雙擊節點觸發

5.FocusedColumnChanged:選中列改變時觸發,即前后點擊的列不一樣時觸發(即使前后選中列不在一行,只要選中列改變就會觸發,與行無關。若前后選中列中某列的ReadOnly = ture則不會觸發該事件)

6.MouseDoubleClick:鼠標雙擊節點時觸發。7.MouseUp:鼠標點擊節點彈起時觸發。(e.Button可以得到曾按下的是哪個按鈕)8.SelectImageClick:點擊SelectImage觸發 9.StateImageClick:點擊StateImage觸發 10.BeforeExpand:節點展開之前 11.BeforeFocusNode:焦點選中之前

DevExpress.XtraTreeList.StyleFormatConditions.StyleFormatCondition styleFormatCondition = new DevExpress.XtraTreeList.StyleFormatConditions.StyleFormatCondition();styleFormatCondition.Appearance.ForeColor = System.Drawing.Color.DarkGray;styleFormatCondition.Appearance.Options.UseForeColor = true;styleFormatCondition.ApplyToRow = true;styleFormatCondition.Condition = DevExpress.XtraGrid.FormatConditionEnum.Expression;styleFormatCondition.Expression = “[Style]”;this.treeList1.FormatConditions.Add(styleFormatCondition);

treeListColumn:TreeList中添加的列

屬性:

1.表示這一列為只讀:OptionsColumn中的ReadOnly = True 2.固定列的寬度不變:OptionsColumn中的FixedWidth = True 3.表示這一列不可編輯(無法實現復制):OptionsColumn中的AllowEdit = False 4.FieldName: 5.UnboundType:

6.SortOrder:列表中的項排序,SortOrder =Descending,遞減排序。SortOrder = Ascending,遞增排序。

treeList.AppendNode();//添加節點(TreeListNode)

TreeListNode:(TreeList中的節點)

屬性: 1.ImageIndex:正常情況下節點前面顯示的圖片的索引

2.SelectImageIndex:選中節點時節點前邊顯示的圖片的索引

3.StateImageIndex:節點開頭顯示的圖片索引(在SelectImageIndex之后)4.Level:節點的級別(0:根節點、1:一級節點···)imageCollection 屬性:

1.Images:在imageCollection中添加圖片

ImageComboBoxEdit ComboBoxEdit 屬性:

1.調整下拉菜單直觀顯示出來的行數(即不用滾動條就可以看的到的行數):DropDownRows 2.Properties.Items:綁定數據源

3.Properties.TextEditStyle:Standard(可輸入,可選),HideTextEditor(只能通過下拉菜單選擇,選中后不在界面上顯示),DisableTextEditor(只能通過下拉菜單選擇并且選中后在界面上顯示)

4.ToolTip:

5.SelectedIndex:選擇的Item的索引(get,set)

事件:

1:EditValueChanged:只要是值改變就會觸發 2:SelectedIndexChanged:(值改變觸發)SelectedIndex改變觸發。3:SelectedValueChanged:(值改變觸發)SelectedValue改變觸發。

4:DrawItem:光標在下拉菜單上移動的時候觸發,即光標在選擇項上來回移動時觸發

ComboBox(win)

屬性:

1.DroppedDown:設置/獲取下拉菜單是否展開。

2.SelectionStart:設置光標的位置(輸入文本時用,設置為Text.Length可以保證光標在最后一個字符的后面,避免將前邊的字符覆蓋掉)。事件:

1.TextUpdate:輸入的值時(text屬性值改變時)觸發。(在TextChanged事件之前)2.TextChanged:輸入的值時(text屬性值改變時)觸發。(在TextUpdate事件之后)3.MouseDown:鼠標在控件上按下時觸發。

LabelControl:

屬性: 事件:

notePane:

屬性:

1.MaxRow:設置notePane最大顯示行數

TextEdit:單行文本輸入

事件:

1.EditValueChanged:TextEdit值改變時候觸發

2.Validating:焦點離開TextEdit時觸發,驗證有效性(有效性的標準通過自己在事件里面的代碼來寫,若設置了EditMask,進入該事件會先自動根據EditMask為標準來驗證有效性,完成之后執行事件里面的代碼)3.KeyPress:鍵盤按下某一個鍵觸發。

屬性:

1.TextEdit.Mask.EditMask:可以規定輸入的格式,類似正則表達式

2.TextEdit.Mask.MaskType:指定可填寫的文本類型(如:數字、字符串或者是根據正則表達式(RegEx)來約束···EditMask與MaskType配合使用,若MaskType= RegEx,EditMas = 某正則表達式,當MaskType是DateTime,Numeric時,EditMask為指定的相應類型)3.MaxLength:可填的最大字符長度,僅當MaskType = None時有效

4.TextEdit.Mask.BeepOnError:當用戶輸入不滿足EdiMask要求時,是否發beep聲。5.UseSystemPasswordChar: true –密碼框(輸入的內容在界面上是 ****)6.實現水印文字:Properties.NullValuePrompt = “輸入密碼”

Properties.NullValuePromptShowForEmptyValue = true;

memoEdit:多行文本輸入

屬性: 事件:

checkEdit:

屬性:

1.Checked:是否選中

事件:

1.CheckedChanged:勾選狀態改變時觸發(選中變不選中,不選中變選中)

checkedListBoxControl:(實現多選框)

屬性: 事件:

1.DrawItem:光標在選擇菜單上移動的時候觸發,即光標在選擇項上來回移動時觸發(與ComboBoxEdit的DrawItem事件相似)2.ItemCheck:勾選或取消勾選Item時觸發。(e.Index:點擊的Item的索引,e.State:改變的狀態)3.方法: 1.UnCheckAll();//全部不選 2.CheckAll();//全選中

PopupContainerEdit:

屬性:

1. Properties.PopupControl:(PopupContainerEdit和PopupContainerControl組合,實現下拉組合框)this.popupContainerEdit1.Properties.PopupControl = this.popupContainerControl1;

事件:

1.EditValueChanged 2.QueryResultValue PopupContainerControl:

屬性: 事件:

splitContainerControl: barManager: popupMenu:

lookUpEdit:

屬性:

1.Properties.DataSource:綁定數據(可以直接將list<>賦值給它)。

2.Properties.TextEditStyle:Standard(可輸入),HideTextEditor(只能通過下拉菜單選擇,選中后不在界面上顯示),DisableTextEditor(只能通過下拉菜單選擇并且選中后在界面上顯示)3.事件:

panelControl:

屬性:

1.BorderStyle(邊框風格):NoBorder–無邊框,事件:

wizardControl:

屬性:

1.HeaderImage:右上角圖片。2.CancelText:3.FinishText:4.NextText:5.PreviousText:

當在最后一頁時中間按鈕變為“結束”

事件:

1.CancelClick:點擊“取消”觸發。2.FinishClick:最后一頁點擊結束觸發。3.SelectedPageChanging:切換頁面時觸發。(e.Direction:判斷是向前翻頁還是向后翻頁,e.Page:新頁)

4.SelectedPageChanged:切換頁面后觸發。(e.PrevPage:舊頁)

wizardPage:(wizardControl中的每一頁)

屬性:

1. DescriptionText:2. Text:

事件:

1.PageValidating:驗證事件。(e.Direction:判斷是向前翻頁還是向后翻頁,e.Valid = false;翻不過去)2.simpleButton:

屬性:

1.事件: buttonEdit:

屬性: 事件:

dropDownButton: 屬性:

1.DropDownControl:(dropDownButton控件實現下拉框)

增加2個控件barManager1。

dropDownButton 的DropDownControl屬性選擇popupMenu1。popupMenu1的Manager屬性選擇事件:

radioGroup:

屬性: 事件:

spinEdit:

屬性:

1.Appearance.TextOptions.HAlignment:輸入的文本的位置,如:Near,近前邊。,靠事件:

GridControl 事件: 1.MouseDoubleClick:雙擊某一行。

gridView

屬性:

1.OptionsBehavior.Editable:是否可用

vGridControl 屬性:

1.2.3.4.5.OptionsBehavior.Editable:是否可用

OptionsBehavior.ResizeHeaderPanel:是否可以拖拽改變每一行的高度 OptionsBehavior.ResizeRowHeaders:是否可以拖拽改變每一列的寬度。LayoutStyle:布局風格

OptionsView.AutoScaleBands:當LayoutStyle為SingleRecordViewBandsView,設置該屬性為true,列寬自動填充 6.XtraTabControl 屬性:

1.ClosePageButtonShowMode:如何顯示每個tabPage上的關閉按鈕。

如:InActiveTabPageHeader:當TabPage為當前選中時顯示關閉按鈕。2.HeaderLocation:標簽位置(上下左右)3.ShowTabHeader:是否顯示標簽

4.HeaderOrientation:標簽方向(Horizontal:水平,Vertical豎直)5.HeaderButtons:當tabpage過多,需要翻頁時,設置翻頁按鈕如何組合。如

6.TabPageWidth:統設標簽寬度。

事件:

1.CloseButtonClick:點擊標簽上的X按鈕事件

XtraTabPage:

屬性:

1.ShowCloseButton:是否顯示關閉按鈕。2.TabPageWidth:這一頁的標簽寬度。

第二篇:總結數位DP算法

數位dp是一種計數用的dp,一般就是要統計一個區間[le,ri]內滿足一些條件數的個數。比如,[1,10000] 中統計不含有4的數。

所謂數位dp,字面意思就是在數位上進行dp咯。就是對數字每一位每一位遞推

此類題目最基本的暴力方法:

1.for(int i=le;i<=ri;i++)

2.if(Check(i))ans++;

而數位DP就是從最低(高)位起,一位一位的放數字,然后記憶化一下,累加一下

有兩種方法,一是遞推,二是記憶化搜索

一,記憶化搜索:

思路來自: 數位dp總結之從入門到模板 假設題目要求是不含有62的數

狀態定義:d[pos][pre] 表示當前枚舉到pos位置,且pos+1位的數字是pre,此時滿足題意的數字的個數(也即是pre==6時,pos該位置不能放2)還要個數組a[i]保存第i位的數字,如213,a[0]=3,注意是從右往左數

有個問題是枚舉第pos位數時,此位置放數字的范圍要判斷一下,比如題目給出在[1,894] 枚舉的時候要判斷是否在894以內

比如,213,第一位放了2,那么第二位就只能放0~1,所以模板中用了個limit判斷pos前的幾位數字是否與n一樣,true的話只能枚舉0~a[pos],false就是0~9,不然比題目要求的213大了

還有個問題是前導0的問題,假如枚舉5位數,你放的時候前2位都是00,那數字不變成3位了嘛,所以需要個lead保存前幾位是否都是0,當然這是看題意的,有時候題目不要求,可以直接省去

好了,看模板:

1.typedef long long ll;2.int a[20];

3.ll dp[20][state];//不同題目狀態不同

4.ll dfs(int pos,/*state變量*/,bool lead/*前導零*/,bool limit/*數位上界變量*/)//不是每個題都要判斷前導零

5.{

6.//遞歸邊界,既然是按位枚舉,最低位是0,那么pos==-1說明這個數我枚舉完了

7.if(pos==-1)return 1;/*這里一般返回1,表示你枚舉的這個數是合法的,那么這里就需要你在枚舉時必須每一位都要滿足題目條件,也就是說當前枚舉到pos位,一定要保證前面已經枚舉的數位是合法的。不過具體題目不同或者寫法不同的話不一定要返回1 */ 8.//第二個就是記憶化(在此前可能不同題目還能有一些剪枝)

9.if(!limit &&!lead && dp[pos][state]!=-1)return dp[pos][state];10./*常規寫法都是在沒有限制的條件記憶化,這里與下面記錄狀態是對應,具體為什么是有條件的記憶化后面會講*/

11.int up=limit?a[pos]:9;//根據limit判斷枚舉的上界up;這個的例子前面用213講過了

12.ll ans=0;13.//開始計數

14.for(int i=0;i<=up;i++)//枚舉,然后把不同情況的個數加到ans就可以了

15.{

16.if()...17.else if()...18.ans+=dfs(pos-1,/*狀態轉移*/,lead && i==0,limit && i==a[pos])//最后兩個變量傳參都是這樣寫的

19./*這里還算比較靈活,不過做幾個題就覺得這里也是套路了

20.大概就是說,我當前數位枚舉的數是i,然后根據題目的約束條件分類討論

21.去計算不同情況下的個數,還有要根據state變量來保證i的合法性,比如題目

22.要求數位上不能有62連續出現,那么就是state就是要保存前一位pre,然后分類,23.前一位如果是6那么這意味就不能是2,這里一定要保存枚舉的這個數是合法*/

24.}

25.//計算完,記錄狀態

26.if(!limit &&!lead)dp[pos][state]=ans;

27./*這里對應上面的記憶化,在一定條件下時記錄,保證一致性,當然如果約束條件不需要考慮lead,這里就是lead就完全不用考慮了*/

28.return ans;29.}

30.ll solve(ll x)31.{

32.int pos=0;

33.while(x)//把數位都分解出來

34.{

35.a[pos++]=x%10;//個人老是喜歡編號為[0,pos),看不慣的就按自己習慣來,反正注意數位邊界就行

36.x/=10;37.}

38.return dfs(pos-1/*從最高位開始枚舉*/,/*一系列狀態 */,true,true);//剛開始最高位都是有限制并且有前導零的,顯然比最高位還要高的一位視為0嘛

39.}

40.int main()41.{

42.ll le,ri;

43.while(~scanf(“%lld%lld”,&le,&ri))44.{

45.//初始化dp數組為-1,這里還有更加優美的優化,后面講 46.printf(“%lldn”,solve(ri)-solve(le-1));47.} 48.}

注意:

那個if(!limit &&!lead &&dp[pos][state]!=-1)return dp[pos][state];limit 的數字必須要枚舉,不能直接返回,每次都要算

雖然這會導致重復,但這可以解決狀態沖突,而且重復計算的數字也很少 舉例如下:

題目:不能出現連續的11(11、112、211都是不合法的)那么我們開始枚舉:

要枚舉3位數,已經枚舉了兩位01_,要枚舉最后一位,此時狀態為d[0][1] 即:在枚舉個位,且前一位為1,那么顯然得出d[0][1]=9 開始新的一輪枚舉,枚舉到11_,此時狀態也是d[0][1] 因為已經有9這個值了,所以返回了,但很明顯答案是0,是錯的 當然可以多開一維防止狀態沖突

可以看看數位DP模板題: HDU 2089 不要62 數位DP.二,遞推方法

思路來自:初探數位dp

狀態定義:d[i][j] 有i位數字,且第一位為j,在 0~j-1 + 000....999的符合題意的個數,如 d[4][3] 就是在 3000~3999 的符合題意的個數

還要個數組a[i]保存第i位的數字,如213,a[1]=3,注意是從右往左數(下面是從1開始數起了)

這樣狀態定義的能更加方便,可以預處理,因為當一個數字的第一位比題目要求的第一位小后,后面的幾位能000..~999..如4269,如果第一位枚舉 3 _ _ _,那么后三位可以任取

模板如下:

1.for(int i=1;i<=7;i++)//枚舉位數

2.{

3.for(int j=0;j<10;j++)//枚舉第i位可能出現的數

4.{

5.for(int k=0;k<10;k++)//枚舉第i-1位可能出現的數

6.{

7.if(j!=4&&!(j==6&&k==2))//符合題意的條件

8.dp[i][j] += dp[i-1][k];9.} 10.} 11.}

以HDU 2089,解釋怎么算出答案(不含4,62的數字)

1.#include

2.#include 3.#include

4.#include

5.using namespace std;6.int d[10][10],digit[10];

7.//d[i][j] 表示有i位數字,且第一位是j的數字的 滿足題意的數量

8.void init()9.{

10.d[0][0]=1;

11.for(int i=1;i<=7;i++)12.for(int j=0;j<=9;j++)13.for(int k=0;k<=9;k++)14.if(j!=4&&!(j==6&&k==2))15.d[i][j]+=d[i-1][k];16.}

17.int solve(int x)// [0,x)

18.{

19.int len=0;20.while(x){

21.digit[++len]=x%10;22.x/=10;23.}

24.digit[len+1]=0;25.int ans=0;

26.for(int i=len;i>=1;i--){

27.for(int j=0;j

28.if(j!=4&&!(j==2&&digit[i+1]==6))29.ans+=d[i][j];30.31.if(digit[i]==4||(digit[i+1]==6&&digit[i]==2))32.break;33.}

34.return ans;35.}

36.int main(int argc, char const *argv[])37.{

38.int n,m;39.init();

40.while(cin>>n>>m,n+m)41.cout<

42.return 0;43.}

假設一個數3229 得出

0000~0999 的個數 1000~1999 的個數 2000~2999 的個數 000~099 的個數 100~199 的個數 00~99 的個數 10~19 的個數 0~8 的個數 累加就是答案了

所以該區間是[0,n)是取不到的n的,注意計算的時候要加一個1

下面是一些題目:

HDU 2089 不要62和4 HDU 3555 含49的數

HDU 3652 含13且可以被13整除

codeforces 55d A 一個數字可以被它所有非零數整除的個數 POJ 3252 Round Numbers HDU 4734 F(x)HDU 3709 Balanced Number HYSBZ 1799 self 同類分布

URAL 1057 Amount of Degrees * HDU 4507 吉哥系列故事——恨7不成妻 *

總結:

可能要用到的數位DP的題目類型:

1~10^18,求某區間(很大),有特定要求的數字的個數 如求mod,求和,可以整除各位數,不出現某些數...框架:

int DFS(intpos,......)//DFS一位一位放數字,求出答案,函數的參數保存題目要求的狀態

int solve(int n)//把n一位一位拆分,求出[1,n] 的符合要求的值

難點:定義好狀態!

1.dp狀態要找好,不要出現狀態重疊現象,注意前導0有沒有影響

2.題目有求和sum,可能會很大,但可以轉化為保存sum對一個數求mod的值 3.有時候dp狀態定義不好可能要求每次DFS都要memset一下,換換思路想想通用的狀態定義,如sum從加法改為減法

第三篇:iOS UITextField控件總結

iOS UITextField控件總結

//初始化textfield并設置位置及大小

UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)];

//設置邊框樣式,只有設置了才會顯示邊框樣式

text.borderStyle = UITextBorderStyleRoundedRect;typedef enum {

UITextBorderStyleNone,UITextBorderStyleLine,UITextBorderStyleBezel,UITextBorderStyleRoundedRect

} UITextBorderStyle;

//設置輸入框的背景顏色,此時設置為白色 如果使用了自定義的背景圖片邊框會被忽略掉

text.backgroundColor = [UIColor whiteColor];

//設置背景

text.background = [UIImage imageNamed:@“dd.png”];

//設置背景

text.disabledBackground = [UIImage imageNamed:@“cc.png”];

//當輸入框沒有內容時,水印提示 提示內容為password text.placeholder = @“password”;

//設置輸入框內容的字體樣式和大小

text.font = [UIFont fontWithName:@“Arial” size:20.0f];

//設置字體顏色

text.textColor = [UIColor redColor];

//輸入框中是否有個叉號,在什么時候顯示,用于一次性刪除輸入框中的內容

text.clearButtonMode = UITextFieldViewModeAlways;

typedef enum {

UITextFieldViewModeNever, 從不出現

UITextFieldViewModeWhileEditing, 編輯時出現

UITextFieldViewModeUnlessEditing, 除了編輯外都出現

UITextFieldViewModeAlways 一直出現 } UITextFieldViewMode;

//輸入框中一開始就有的文字

text.text = @“一開始就在輸入框的文字”;

//每輸入一個字符就變成點 用語密碼輸入

text.secureTextEntry = YES;

//是否糾錯

text.autocorrectionType = UITextAutocorrectionTypeNo;

typedef enum {

UITextAutocorrectionTypeDefault, 默認

UITextAutocorrectionTypeNo, 不自動糾錯

UITextAutocorrectionTypeYes, 自動糾錯 } UITextAutocorrectionType;

//再次編輯就清空

text.clearsOnBeginEditing = YES;

//內容對齊方式

text.textAlignment = UITextAlignmentLeft;

//內容的垂直對齊方式 UITextField繼承自UIControl,此類中有一個屬性contentVerticalAlignment text.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;

//設置為YES時文本會自動縮小以適應文本窗口大小.默認是保持原來大小,而讓長文本滾動

textFied.adjustsFontSizeToFitWidth = YES;

//設置自動縮小顯示的最小字體大小

text.minimumFontSize = 20;

//設置鍵盤的樣式

text.keyboardType = UIKeyboardTypeNumberPad;

typedef enum {

UIKeyboardTypeDefault,默認鍵盤,支持所有字符

UIKeyboardTypeASCIICapable, 支持ASCII的默認鍵盤

UIKeyboardTypeNumbersAndPunctuation, 標準電話鍵盤,支持+*#字符

UIKeyboardTypeURL,URL鍵盤,支持.com按鈕 只支持URL字符 UIKeyboardTypeNumberPad,數字鍵盤 UIKeyboardTypePhonePad,電話鍵盤

UIKeyboardTypeNamePhonePad, 電話鍵盤,也支持輸入人名 UIKeyboardTypeEmailAddress, 用于輸入電子 郵件地址的鍵盤

UIKeyboardTypeDecimalPad,數字鍵盤 有數字和小數點

UIKeyboardTypeTwitter,優化的鍵盤,方便輸入@、#字符

UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable, } UIKeyboardType;

//首字母是否大寫

text.autocapitalizationType = UITextAutocapitalizationTypeNone;

typedef enum {

UITextAutocapitalizationTypeNone, 不自動大寫

UITextAutocapitalizationTypeWords, 單詞首字母大寫

UITextAutocapitalizationTypeSentences, 句子的首字母大寫

UITextAutocapitalizationTypeAllCharacters, 所有字母都大寫 } UITextAutocapitalizationType;

//return鍵變成什么鍵

text.returnKeyType =UIReturnKeyDone;

typedef enum {

UIReturnKeyDefault, 默認 灰色按鈕,標有Return

UIReturnKeyGo, 標有Go的藍色按鈕

UIReturnKeyGoogle,標有Google的藍色按鈕,用語搜索

UIReturnKeyJoin,標有Join的藍色按鈕

UIReturnKeyNext,標有Next的藍色按鈕

UIReturnKeyRoute,標有Route的藍色按鈕

UIReturnKeySearch,標有Search的藍色按鈕

UIReturnKeySend,標有Send的藍色按鈕

UIReturnKeyYahoo,標有Yahoo的藍色按鈕

UIReturnKeyYahoo,標有Yahoo的藍色按鈕

UIReturnKeyEmergencyCall, 緊急呼叫按鈕 } UIReturnKeyType;

//鍵盤外觀

textView.keyboardAppearance=UIKeyboardAppearanceDefault; typedef enum { UIKeyboardAppearanceDefault,默認外觀,淺灰色 UIKeyboardAppearanceAlert,深灰 石墨色

} UIReturnKeyType;

//設置代理 用于實現協議

text.delegate = self;

//把textfield加到視圖中

[self.window addSubview:text];//最右側加圖片是以下代碼

左側類似

UIImageView *image=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@“right.png”]];

text.rightView=image;

text.rightViewMode = UITextFieldViewModeAlways;

typedef enum {

UITextFieldViewModeNever,UITextFieldViewModeWhileEditing,UITextFieldViewModeUnlessEditing,UITextFieldViewModeAlways } UITextFieldViewMode;

//按return鍵 鍵盤往下收 becomeFirstResponder

類要采用UITextFieldDelegate協議

text.delegate = self;聲明text的代理是我,我會去實現把鍵盤往下收的方法 這個方法在UITextFieldDelegate里所以我們要采用UITextFieldDelegate這個協議

-(BOOL)textFieldShouldReturn:(UITextField *)textField { [text resignFirstResponder];//主要是[receiver resignFirstResponder]在哪調用就能把receiver對應的鍵盤往下收 return YES;}

重寫繪制行為

除了UITextField對象的風格選項,你還可以定制化UITextField對象,為他添加許多不同的重寫方法,來改變文本字段的顯示行為。這些方法都會返回一個CGRect結構,制定了文本字段每個部件的邊界范圍。以下方法都可以重寫。

– textRectForBounds:

//重寫來重置文字區域

– drawTextInRect:

//改變繪文字屬性.重寫時調用super可以按默認圖形屬性繪制,若自己完全重寫繪制函數,就不用調用super了.– placeholderRectForBounds: //重寫來重置占位符區域

– drawPlaceholderInRect: //重寫改變繪制占位符屬性.重寫時調用super可以按默認圖形屬性繪制,若自己完全重寫繪制函數,就不用調用super了.– borderRectForBounds: //重寫來重置邊緣區域 – editingRectForBounds: //重寫來重置編輯區域

– clearButtonRectForBounds: //重寫來重置clearButton位置,改變size可能導致button的圖片失真 – leftViewRectForBounds: – rightViewRectForBounds: 委托方法

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField{

//返回一個BOOL值,指定是否循序文本字段開始編輯

return YES;}

-(void)textFieldDidBeginEditing:(UITextField *)textField{ //開始編輯時觸發,文本字段將成為first responder }

-(BOOL)textFieldShouldEndEditing:(UITextField *)textField{

//返回BOOL值,指定是否允許文本字段結束編輯,當編輯結束,文本字段會讓出first responder

//要想在用戶結束編輯時阻止文本字段消失,可以返回NO

//這對一些文本字段必須始終保持活躍狀態的程序很有用,比如即時消息

return NO;}

-(BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{

//當用戶使用自動更正功能,把輸入的文字修改為推薦的文字時,就會調用這個方法。

//這對于想要加入撤銷選項的應用程序特別有用

//可以跟蹤字段內所做的最后一次修改,也可以對所有編輯做日志記錄,用作審計用途。

//要防止文字被改變可以返回NO

//這個方法的參數中有一個NSRange對象,指明了被改變文字的位置,建議修改的文本也在其中

return YES;}

-(BOOL)textFieldShouldClear:(UITextField *)textField{

//返回一個BOOL值指明是否允許根據用戶請求清除內容

//可以設置在特定條件下才允許清除內容

return YES;}

-(BOOL)textFieldShouldReturn:(UITextField *)textField{

//返回一個BOOL值,指明是否允許在按下回車鍵時結束編輯

//如果允許要調用resignFirstResponder 方法,這回導致結束編輯,而鍵盤會被收起[textField resignFirstResponder];//查一下resign這個單詞的意思就明白這個方法了

return YES;}

通知

UITextField派生自UIControl,所以UIControl類中的通知系統在文本字段中也可以使用。除了UIControl類的標準事件,你還可以使用下列UITextField類特有的事件

UITextFieldTextDidBeginEditingNotification UITextFieldTextDidChangeNotification UITextFieldTextDidEndEditingNotification 當文本字段退出編輯模式時觸發。通知的object屬性存儲了最終文本。因為文本字段要使用鍵盤輸入文字,所以下面這些事件發生時,也會發送動作通知

UIKeyboardWillShowNotification //鍵盤顯示之前發送 UIKeyboardDidShowNotification //鍵盤顯示之后發送 UIKeyboardWillHideNotification //鍵盤隱藏之前發送 UIKeyboardDidHideNotification //鍵盤隱藏之后發送

1、Text :設置文本框的默認文本。

2、Placeholder : 可以在文本框中顯示灰色的字,用于提示用戶應該在這個文本框輸入什么內容。當這個文本框中輸入了數據時,用于提示的灰色的字將會自動消失。

3、Background :

4、Disabled : 若選中此項,用戶將不能更改文本框內容。

5、接下來是三個按鈕,用來設置對齊方式。

6、Border Style : 選擇邊界風格。

7、Clear Button : 這是一個下拉菜單,你可以選擇清除按鈕什么時候出現,所謂清除按鈕就是出一個現在文本框右邊的小 X,你可以有以下選擇:

7.1 Never appears : 從不出現

7.2 Appears while editing : 編輯時出現

7.3 Appears unless editing :

7.4 Is always visible : 總是可見

8、Clear when editing begins : 若選中此項,則當開始編輯這個文本框時,文本框中之前的內容會被清除掉。比如,你現在這個文本框 A 中輸入了 “What”,之后去編輯文本框 B,若再回來編輯文本框 A,則其中的 “What” 會被立即清除。

9、Text Color : 設置文本框中文本的顏色。

10、Font : 設置文本的字體與字號。

11、Min Font Size : 設置文本框可以顯示的最小字體(不過我感覺沒什么用)

12、Adjust To Fit : 指定當文本框尺寸減小時,文本框中的文本是否也要縮小。選擇它,可以使得全部文本都可見,即使文本很長。但是這個選項要跟 Min Font Size 配合使用,文本再縮小,也不會小于設定的 Min Font Size。接下來的部分用于設置鍵盤如何顯示。

13、Captitalization : 設置大寫。下拉菜單中有四個選項:

13.1 None : 不設置大寫

13.2 Words : 每個單詞首字母大寫,這里的單詞指的是以空格分開的字符串

13.3 Sentances : 每個句子的第一個字母大寫,這里的句子是以句號加空格分開的字符串

13.4 All Characters : 所以字母大寫

14、Correction : 檢查拼寫,默認是 YES。

15、Keyboard : 選擇鍵盤類型,比如全數字、字母和數字等。

16、Appearance:

17、Return Key : 選擇返回鍵,可以選擇 Search、Return、Done 等。

18、Auto-enable Return Key : 如選擇此項,則只有至少在文本框輸入一個字符后鍵盤的返回鍵才有效。

19、Secure : 當你的文本框用作密碼輸入框時,可以選擇這個選項,此時,字符顯示為星號。

1.Alignment Horizontal 水平對齊方式 2.Alignment Vertical 垂直對齊方式

3.用于返回一個BOOL值 輸入框是否 Selected(選中)Enabled(可用)Highlighted(高亮)

限制只能輸入特定的字符

(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{

NSCharacterSet *cs;

cs = [[NSCharacterSet characterSetWithCharactersInString:NUMBERS]invertedSet];

NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs]componentsJoinedByString:@“"];//按cs分離出數組,數組按@”“分離出字符串

BOOL canChange = [string isEqualToString:filtered];

return canChange;}

上面那個NUMBERS是一個宏,可以在文件頂部定義:

#define NUMBERS @”0123456789n”(這個代表可以輸入數字和換行,請注意這個n,如果不寫這個,Done按鍵將不會觸發,如果用在SearchBar中,將會不觸發Search事件,因為你自己限制不讓輸入n,好慘,我在項目中才發現的。)所以,如果你要限制輸入英文和數字的話,就可以把這個定義為: #define kAlphaNum @”ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789″。當然,你還可以在以上方法return之前,做一提示的,比如提示用戶只能輸入數字之類的。如果你覺得有需要的話。

限制只能輸入一定長度的字符

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;{ //string就是此時輸入的那個字符 textField就是此時正在輸入的那個輸入框 返回YES就是可以改變輸入框的值 NO相反

if([string isEqualToString:@”n“])//按回車可以改變

{

return YES;

}

NSString * toBeString = [textField.text stringByReplacingCharactersInRange:range withString:string];//得到輸入框的內容

if(self.myTextField == textField)//判斷是否時我們想要限定的那個輸入框

{

if([toBeString length] > 20){ //如果輸入框內容大于20則彈出警告

textField.text = [toBeString substringToIndex:20];

UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:nil message:@”超過最大字數不能輸入了“ delegate:nil cancelButtonTitle:@”Ok" otherButtonTitles:nil, nil] autorelease];

[alert show];

return NO;

}

}

return YES;}

第四篇:手機Android系統常用控件總結

找工作,上長沙英才網

手機Android系統常用控件總結

Notepad++編寫 可以負責粘貼到其中去 看得更清楚。(內容包括了Android中的大部分常用控件及其事件的監聽)第一章

1.1 Android中src文件夾包含項目的所有包及其資源文件,res文件夾包含了項目中所有的資源。比如:程序圖標(drawable),布局文件(layout),常量(value),音頻文件(raw)R.java是在創建項目是自動生成的只讀文件,不可更改此文件。R文件其作用:是定義項目中所有資源的索引文件。

1.2 AndroidManfest.xml 如下:

package=“Android.Summary” //引用程序包名 android:versionCode=“1” android:versionName=“1.0”> //使用SDK版本號

//應用程序名字

找工作,上長沙英才網

/ //描述了Activity的啟動時間和位置,另外為了支持查找Activity可以包含一個或多個 //acton 為組件支持的Intent action //categor 為組件支持的Intent category 這里指定了引用程序的默認啟動的Activity //在此對新增的Activity進行注冊。如果在不同的包中注意聲明是將包名帶上

1.3 String.xml如下:

//此處定義了兩個字符串資源,即定義了app_name,hello常量

Hello World, SummaryActivity! Summary 如何使用這個資源呢?如下:

Resources r = this.getContext().getResources();//通過Context的getResource()實例化一個Resources對象

String app_name =((String)r.getString(R.string.app_name));//然后通過getString()方法取得指定的索引的字符串。項目中所有常量都可以在String.xml文件中定義

String hello =((String)r.getString(R.string.hello));

1.4 main.xml如下:

找工作,上長沙英才網

android:orientation=“vertical” //版面配置的方式。此為自上到下為垂直配置,“horizontal”為水平配置

android:layout_width=“fill_parent” //定義當前視圖在屏幕上所占的寬度,“fill_parent”為填充整個屏幕寬度

/*android:layout_weight=“50”*/ //用于給一個布局中多個視圖的重要度賦值

android:layout_height=“fill_parent” //定義當前視圖在屏幕上所占的高度,...........................高度 >

android:text=“@string/hello” //在視圖上顯示的內容,此處引用了@String中的hello字符串 />

1.5 src下的java 如下: package Android.Summary;

import android.app.Activity;import android.os.Bundle;

public class SummaryActivity extends Activity { //繼承自Activity /** Called when the activity is first created.*/ @Override

找工作,上長沙英才網

public void onCreate(Bundle savedInstanceState){ //重寫onCreate()方法

super.onCreate(savedInstanceState);setContentView(R.layout.main);//設置要顯示的布局 } } 第二章

2.1 Android應用程序由四個模塊組成:Activity,Service,Intent,ContentProvider(注意:一個應用程序不一定包含全部的四個模塊).在使用時必須在AandroidManfest中進行聲明。

Activity可以理解為用戶看到屏幕,主要用于處理應用程序的整體性工作。如: a.監聽系統事件,觸屏事件,為用戶顯示指定的View,啟動其他Activity等。b.所有應用的Activity都繼承于android.app.Activity,該類是Android提供的基層類。

c.一個Activity通常就是一個單獨的屏幕。d.每一個活動都被實現為一個獨立的類。e.大多數的應用程序都是由多個Activity組成。

Intent Aandroid中主要用Intent類實現從一個Activity跳轉到另一個Activity。在Intent的描述結構中,有兩個重要的部分:動作和對應的數據。

典型的動作有MAIN,VIEW,PICK,EDIT.而動作對應的數據則以URI的形式表示。例如:要查一個人的聯系方式,需要創建一個動作類型View的Intent ,以及一個表示這個人的URI.Intent的使用:

button1.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v){ Intent intent = new Intent();//創建一個Intent對象

intent.setClass(Activity01.this,Activity02.class);//指明要啟動的另一Activity02 startActivity(intent);//啟動一個新的Activity

找工作,上長沙英才網

Activity01.this.finish();//關閉當前Activity01 } });這里需要注意在Android中對新啟動的Activity進行聲明。聲明方式: //注意:如果在不同的包中在聲明是還要加上包名

IntentReceiver 如果希望Android應用能夠對外部事件(如電話打入時,數據網絡可用時,)做出響應,可用使用IntentReceiver.雖然IntentReceiver在如上事件發生

時會使用NotificationManager通知用戶,但它并不能生產UI。IntentReceiver可以在AndroidManifest.xml中注冊,也可在代碼中使用Context.registerReceiver 進行注冊。當IntentReceiver被觸發時,系統會在需要的時候啟動應用。各種應用還可以通過ContentReceiver()將他們自己的IntentReceiver廣播出去。???????

Content Provider 作用:主要用于不同應用程序中的數據的傳遞。Content Provider 是一個特殊的存儲數據的類型。Android自身提供現成的Content Provider:Contacts ,Browser,CallLog,Settings,MediaStore 應用可用通過唯一的ContentResolver界面來使用具體的Conten Provider,然后可以用ContentResolver提供的方法來使用你需要的Content Provider 其中,ContentResolver提供的方法有query(),insert(),update()等。URI----String形式的Content Provider的完整路徑。

下面這個這個例子通過ContentProvider獲取電話本中的數據,然后顯示到TextView中去。

public class Activity01 extends Activity{ public void onCreate(Bundle savedInstanceState){

找工作,上長沙英才網

TextView textView = new TextView(this);//得到TextView對象 String string = “";super.onCreate(savedInstanceState);

ContentResolver resolver = getContentResolver();//得到ContentResolver對象 Cursor cursor = resolver.query(ContactsContract.Contacts.CONTENT_URI,null,null,null,null);//取得電話本中開始一項的光標,通過query方法查詢出符合標準的電話本記錄 //向下移動光標

while(cursor.moveToNext()){ //取得聯系人名字

int name_index = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);String name = cursor.getString(name_index);//取得電話號碼

int number_index = cursor.getColumnIndex(PhoneLookup.NUMBER);String number = cursor.getString(number_index);

string +=(name+”:“+number+”n“);} cursor.close();textView.setText(string);//設置TextView顯示的內容

setContentView(textView);//顯示到屏幕上 其實TextView也是View的一種 } } 注意:在使用這些模塊中用到了讀取聯系人的API,所以必須在AndroidManifest.xml中聲明

聲明方式為:

找工作,上長沙英才網

Service 后臺服務,沒有界面

啟動service方法: a.Context.startService()b.Context.bindService()//與上一種方法不同處 如果這個Service沒有處于啟動狀態,則將其啟動

下面這個例子以Activity中的倆個控件來控制播放一首Mp3.(例中:需要在res文件夾中創建一個raw文件夾 然后放入一首MP3)

public class Activity01 extends Activity{ public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.main);

//從main.xml布局中獲得Button對象

Button button_start =(Button)findViewById(R.id.start);Button button_stop =(Button)findViewById(R.id.stop);//設置按鈕(Button)監聽

button_start.setOnClickListener(start);button_stop.setOnClickListener(stop);} //開始按鈕

private OnClickListener start = new OnClickListener(){ public void onClick(View v){ //開啟Service startService(new Intent(”com.yarin.Android.MUSIC“));} };//停止按鈕

找工作,上長沙英才網

private OnClickListener stop = new OnClickListener(){ public void onClick(View v){ //停止Service stopService(new Intent(”com.yarin.Android.MUSIC“));} };}

public class MusicService extends Service{ //MediaPlayer對象

private MediaPlayer player;

public IBinder onBind(Intent arg0){ return null;} public void onStart(Intent intent, int startId){ super.onStart(intent, startId);//這里可以理解為裝載音樂文件

player = MediaPlayer.create(this, R.raw.test);//開始播放 player.start();}

public void onDestroy(){ super.onDestroy();//停止音樂-停止Service player.stop();} }

AndroidManifest.xml文件中

找工作,上長沙英才網

2.2 Aandrod的生命周期

public class Activity02 extends Activity{ private static final String TAG = ”Activity02“;

public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.main2);Log.v(TAG, ”onCreate“);} public void onStart(){ super.onStart();Log.v(TAG, ”onStart“);} public void onResume(){ super.onResume();Log.v(TAG, ”onResume“);} public void onPause(){ super.onPause();Log.v(TAG, ”onPause“);} public void onStop(){ super.onStop();Log.v(TAG, ”onStop“);

找工作,上長沙英才網

} public void onDestroy(){ super.onDestroy();Log.v(TAG, ”onDestroy“);} public void onRestart(){ super.onRestart();Log.v(TAG, ”onReStart“);} } 這些方法都是系統自動調用的。

第三章 3.1 事件處理

* 控件事件通過設置其控件的監聽器來監聽并處理事件 * 按鍵按下事件:通過重寫onKeyDown方法 * 按鍵彈起事件:通過重寫onKeyUp方法 * 觸筆點擊事件:通過實現onTouchEvent方法 * 示例中使用了Toast控件:

* Toast.makeText(this, string, Toast.LENGTH_SHORT).show();

public class Activity01 extends Activity{

public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.main);//獲得Button對象

Button button_ok =(Button)findViewById(R.id.ok);

找工作,上長沙英才網

button_ok.setOnClickListener(new Button.OnClickListener(){------------------------//設置Button控件監聽器

public void onClick(View v){ //這里處理事件

DisplayToast(”點擊了OK按鈕“);} });}

/* 按鍵按下所觸發的事件*/ public boolean onKeyDown(int keyCode, KeyEvent event){ switch(keyCode){ case KeyEvent.KEYCODE_DPAD_CENTER: DisplayToast(”按下:中鍵“);break;case KeyEvent.KEYCODE_DPAD_UP: DisplayToast(”按下:上方向鍵“);break;case KeyEvent.KEYCODE_DPAD_DOWN: DisplayToast(”按下:下方向鍵“);break;case KeyEvent.KEYCODE_DPAD_LEFT: DisplayToast(”按下:左方向鍵“);break;case KeyEvent.KEYCODE_DPAD_RIGHT: DisplayToast(”按下:右方向鍵“);break;} return super.onKeyDown(keyCode, event);}

找工作,上長沙英才網

/* 按鍵彈起所觸發的事件*/ public boolean onKeyUp(int keyCode, KeyEvent event){ switch(keyCode){ case KeyEvent.KEYCODE_DPAD_CENTER: DisplayToast(”彈起:中鍵“);break;case KeyEvent.KEYCODE_DPAD_UP: DisplayToast(”彈起:上方向鍵“);break;case KeyEvent.KEYCODE_DPAD_DOWN: DisplayToast(”彈起:下方向鍵“);break;case KeyEvent.KEYCODE_DPAD_LEFT: DisplayToast(”彈起:左方向鍵“);break;case KeyEvent.KEYCODE_DPAD_RIGHT: DisplayToast(”彈起:右方向鍵“);break;} return super.onKeyUp(keyCode, event);} //用于響應按鍵重復點擊,官方API指出onKeyMultiple方法總是返回false,即它沒有handle,因此必須重寫才能實現-------------------此方法沒用過具體情況怎么樣不是很清楚?

public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event){

return super.onKeyMultiple(keyCode, repeatCount, event);}

/* 觸筆事件*/

找工作,上長沙英才網

public boolean onTouchEvent(MotionEvent event){ int iAction = event.getAction();//利用getAction得到所執行的動作 if(iAction == MotionEvent.ACTION_CANCEL || iAction == MotionEvent.ACTION_DOWN || iAction == MotionEvent.ACTION_MOVE){ return false;} //得到觸筆點擊的位置 int x =(int)event.getX();int y =(int)event.getY();//將獲得的坐標轉成String類型的方法 DisplayToast(”觸筆點擊坐標:(“+Integer.toString(x)+”,“+Integer.toString(y)+”)“);

return super.onTouchEvent(event);}

/* 顯示Toast */ public void DisplayToast(String str){ Toast.makeText(this, str, Toast.LENGTH_SHORT).show();} } 我們分析了一些常用事件處理方式。每一個鍵都對應一個鍵值。當然也可根據需要來改變一些鍵的功能,需要我們自己構建KeyEvent對象------------------有待進一步學習

構造KeyEvent對象的幾種方法: KeyEvent(int action,int code);KeyEvent(long DownTime,long EventTime,int action,int code,int repeat);KeyEvent(long DownTime,long EventTime,int action,int code,int repeat,int metState);

找工作,上長沙英才網

KeyEvent(long DownTime,long EventTime,int action,int code,int repeat,int metState,int device,int scancode);KeyEvent(long DownTime,long EventTime,int action,int code,int repeat,int metState,int device,int scancode,int flags);KeyEvent(KeyEvent origEvent,long EventTime,int newRepart);例:

public class Activity01 extends Activity{ public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.main);} public boolean onKeyDown(int keyCode, KeyEvent event){ //這里構建KeyEvent對象,其功能為返回鍵的功能 //因此我們按任意鍵都會執行返回鍵功能

KeyEvent key = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK);

//這里傳入的參數就是我們自己構建的KeyEvent對象key return super.onKeyDown(key.getKeyCode(), key);} } 3.2 常用控件 Button xml設計

代碼設計Button button = new Button(this);

找工作,上長沙英才網

button.setText(”我是Button“);button.setWidth(123);//設置寬度 button.setHeight(123);//設置高度

button.setTextColor(Color.BLUE);//設置文字顏色 button.setTextSize(123);//設置字體大小

button.setBackgroundColor(Color.BLUE);//設置控件背景色

監聽器

button.setOnClickListener(new Button.OnClickListener(){//設置按鈕的事件監聽

public void onClick(View v){ //處理按鈕事件產生一個Toast.利用button.getText()得到按鈕顯示的內容

Toast toast = Toast.makeText(Activity01.this, ”你點擊了““+button.getText()+””按鈕!“, Toast.LENGTH_LONG);//設置toast顯示的位置

toast.setGravity(Gravity.TOP, 0, 150);//顯示該Toast toast.show();} });-TextView 一個用來顯示文本的控件 xml設計

找工作,上長沙英才網

android:text=”你好“/> android:paddingLeft=”50px“ android:paddingTop=”5px“ android:paddingBottom=”5px“ android:textSize=”30sp“ android:singleLine=”true“ android:layout_below=”@id/imageView_handler“//在什么下

android:gravity =”left“ //用于設置View中內容相對于View組件的對齊方式,android:layout_gravity//用于設置View組件相對于Container的對齊方式。

android:paddingLeft=”30px“ // 按鈕上設置的內容離按鈕左邊邊界30個像素

android:layout_marginLeft=”30px“ //整個按鈕離左邊設置的內容30個像素

android:layout_weight=”1“//控件權重 即占的比例 默認值為0 android:gravity=”center_horizontal“//水平居中 android:padding=”3dip“

代碼設計TextView textView = new TextView(this);//聲明對象 textView.setTextColor(Color.RED);//設置字體顏色 textView.setTextSize(20);//設置字體大小

textView.setBackgroundColor(Color.BLUE);//控件背景色 textView.setText(”你好“)//顯示的文字 textView.setHeight textView.setWidth textView.setVisibility(GONE/VISIBLE);//設置為不可見/可見 textView.setGravity(Gravity.CENTER);//設置文字權重

找工作,上長沙英才網

監聽器TextView textView = new TextView(this);//得到對象 textview.setOnClickListener(new TextView.OnClickListener(){------------TextView監聽器

public void onClick(View v){ } });---ImageButton 帶圖標的按鈕 xml設計

代碼中設計

imageButton.setImageDrawable(getResources().getDrawable(R.drawable.image2));//在代碼中設計使用的圖片(得到對象后)

監聽器

imageButton.setOnClickListener(new Button.OnClickListener(){--------------ImageButton監聽器

@Override public void onClick(View v){ //創建對話框

Dialog dialog = new AlertDialog.Builder(ImageButton_Dialog.this)

找工作,上長沙英才網

.setTitle(”ImageButton2“).setMessage(”跳轉到系統圖片“).setPositiveButton(”確定“, new DialogInterface.OnClickListener(){ @Override public void onClick(DialogInterface dialog, int which){ // TODO Auto-generated method stub imageButton2.setImageDrawable(getResources().getDrawable(android.R.drawable.sym_action_call));} }).create();dialog.show();} });---EditText xml設計

代碼設計EditText editText = new EditText(this);//得到EditText對象 editText.setTextSize(20);//設置字體大小

找工作,上長沙英才網

editText.setHint(”請輸入賬號“);//設置當m_EditText中為空時提示的內容

監聽器

editText.setOnKeyListener(new EditText.OnKeyListener(){----------EditText監聽器 @Override public boolean onKey(View arg0, int arg1, KeyEvent arg2){

// 得到文字,將其顯示到TextView中 m_TextView.setText(”文本框中內容是:“ + m_EditText.getText().toString());return false;} });--------------------CheckBox 多項選擇 需要對沒有按鈕設置監聽器 xml設計 監聽器

checkBox1.setOnCheckedChangeListener(new CheckBox.OnCheckedChangeListener(){//對每個選項設置事件監聽-------------------CheckBox監聽器 @Override

找工作,上長沙英才網

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked){ if(m_CheckBox1.isChecked()){ DisplayToast(”你選擇了:“+m_CheckBox1.getText());} } });----------------------Spinner 下拉列表

下面一個例子將可選內容通過ArrayAdapter和下拉列表連接起來。設置監聽器 通過setVisibility方法設置當前顯示項 main.xml

找工作,上長沙英才網

/>

public class Activity01 extends Activity{ private static final String[] string = { ”O型“, ”A型“, ”B型“, ”AB型“, ”其他“ };

private TextView m_TextView;private Spinner m_Spinner;private ArrayAdapter adapter;

@Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.main);

m_TextView =(TextView)findViewById(R.id.TextView1);m_Spinner =(Spinner)findViewById(R.id.Spinner1);

//將可選內容與ArrayAdapter連接

adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, string);

//設置下拉列表的風格

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

//將adapter添加到m_Spinner中 m_Spinner.setAdapter(adapter);

//添加Spinner事件監聽

找工作,上長沙英才網

m_Spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){--------------------------Spinner監聽器

@Override public void onItemSelected(AdapterView arg0, View arg1, int arg2, long arg3){ m_TextView.setText(”你的血型是:“ + string[arg2]);//設置顯示當前選擇的項

arg0.setVisibility(View.VISIBLE);}

@Override public void onNothingSelected(AdapterView arg0){ // TODO Auto-generated method stub });} } }---------RadioGroup , RadioButton 單選選擇控件

一個單選選擇由兩部分組成,分別是前面的選擇按鈕和后面的內容。按鈕通過RadioButton來實現,答案通過RadioGroup來實現

如果確定是選擇哪一項那就要設置監聽器setOnCheckedChangeListener.下面有一例子:本例中使用到了String.xml文件來定義常量。string.xml Android底層是基于什么操作系統?

找工作,上長沙英才網

Examples_04_07 Windows Linux Moc os Java

main.xml

找工作,上長沙英才網

android:layout_width=”wrap_content“ android:layout_height=”wrap_content“ android:text=”@string/RadioButton1“ />

public class Activity01 extends Activity{ TextView m_TextView;RadioGroup m_RadioGroup;RadioButton m_Radio1, m_Radio2, m_Radio3, m_Radio4;

@Override

找工作,上長沙英才網

public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.main);

m_RadioGroup =(RadioGroup)findViewById(R.id.RadioGroup01);//獲得RadioGroup對象

m_Radio1 =(RadioButton)findViewById(R.id.RadioButton1);//獲得4個RadioButton對象

m_Radio2 =(RadioButton)findViewById(R.id.RadioButton2);m_Radio3 =(RadioButton)findViewById(R.id.RadioButton3);m_Radio4 =(RadioButton)findViewById(R.id.RadioButton4);

/* 設置事件監聽 */ m_RadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){---------------------------RadioGroup監聽器 @Override public void onCheckedChanged(RadioGroup group, int checkedId){

if(checkedId == m_Radio2.getId()){ DisplayToast(”正確答案:“ + m_Radio2.getText()+ ”,恭喜你,回答正確!“);}else{ DisplayToast(”請注意,回答錯誤!“);} } });} public void DisplayToast(String str)//顯示Toast{ Toast toast = Toast.makeText(this, str, Toast.LENGTH_LONG);//設置toast顯示的位置

找工作,上長沙英才網

toast.setGravity(Gravity.TOP, 0, 220);//顯示該Toast toast.show();} }--------------AutoCompletTextView 和MultiAutoCompleteTextView 作用:自動提示 下面例中用到了ArrayAdapter autoCompletTextView.xml

//如何實現如果輸入的字符不在其范圍內的也能得到提示 是繼承TextWatcher?

找工作,上長沙英才網

public class Control_Auto extends Activity { //implements TextWatcher{} public TextView textView_auto;

private static final String[] string ={”ni hao“,”ni hao “,”ni hao ma“,”ni zheng de hao ma“,”nshis“};

public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.autocompletetextview);

//將可選內容與適配器ArrayAdapter連接 ArrayAdapter adapter= new ArrayAdapter(this,android.R.layout.simple_dropdown_item_1line,string);

MultiAutoCompleteTextView multiAutoCompletTextView =(MultiAutoCompleteTextView)findViewById(R.id.multiAutoCompleteTextView);AutoCompleteTextView autoCompleteTextView =(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView);

autoCompleteTextView.setAdapter(adapter);//將adapter添加到AutoCompletTextView中去

multiAutoCompletTextView.setAdapter(adapter);//將adapter添加到MultAutoCompleteTextView中去

multiAutoCompletTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());} }

找工作,上長沙英才網

/* //autoCompleteTextView.addTextChangedListener(this);---此為設置監聽?

* 例子中沒有涉及到的屬性(可在布局文件中設置): AutoCompleteTextView是EditText的子類,所以你可以對它的對象進行諸如外觀/字體/顏色等屬性值的設置。

completionThreshold:它的值決定了你在AutoCompleteTextView至少輸入幾個字符,它才會具有自動提示的功能。另,默認最多提示20條。

dropDownAnchor:它的值是一個View的ID,指定后,AutoCompleteTextView會在這個View下彈出自動提示。

dropDownSelector:應該是設置自動提示的背景色之類的。

dropDownWidth:設置自動提示列表的寬度。

你可以通過setAdapter()來給AutoCompleteTextView添加一個包含候選值列表的適配器(adapter)。--------此處沒實現過?

然而,由于用戶可以輸入一些不在候選值列表的數據,AutoCompleteTextView不支

持selection listener。不過,你可以注冊一個TextWacther用于當用戶輸入文本發生變化時發出通知。

-------------------------DatePicker,TimePicker 日期和時間

下例中首先需要在布局文件中定義DatePicker和TimePicker,然后通過Canlendar類獲得系統時間,接著通過init方法將日期傳給DatePicker, 并設置OnDateChangedListener來監聽日期改變,當時間被改變時需要設置setOnTimeChangedListener監聽來設置時間。datepicker_timepicker.xml

找工作,上長沙英才網

>

下載dxp控件總結word格式文檔
下載dxp控件總結.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    GridControl控件小結

    由于近期要使用gridcontrol控件,整理出來,以便以后參考:1.DevExpress控件組中的GridControl控件不能使橫向滾動條有效。現象:控件中的好多列都擠在一起,列寬都變的很小,根本無法正......

    Web測試中,各類web控件測試點總結(推薦)

    Web測試中,各類web控件測試點總結 一 、界面檢查 進入一個頁面測試,首先是檢查title,頁面排版,字段等,而不是馬上進入文本框校驗 1、頁面名稱title是否正確 2、當前位置是否可見......

    百貨商場DP點展臺管理辦法

    DP點展臺是百貨商場商品的重要窗口之一,有著顯著的裝飾和促銷作用。 一、分配與使用申請 1、商場分別在各樓層設有展臺,每個樓層負責本樓層展臺招商。 2、廠商取得展臺使用權......

    北大青鳥Y2學期_Net控件 總結

    --------ASP.Net總結---------- --------第一章--------------- 1.1 ASP.Net簡介 定義:ASP.Net是基于B/S的應用程序,可創建動態、交互的Web頁面的服務器端技術。特色和優勢:(1......

    VB6控件LISTVIEW使用指南(本站推薦)

    功---- VB6無疑是當前最先進的編程工具之一,無論是它的代碼編寫還是與視窗98的完美結合, 都令人們特別是程序員們贊嘆不已。在這里,我將自己在編程實踐中對LISTVIEW控件的一......

    進口DP交單流程(廢塑料)

    進口D/P交單流程(廢塑料) 一、訂立合同后,及時索要裝箱圖片及裝箱情況;并要求對方將提單復印件傳真到我司。 二、根據提單的相關內容查詢船期,確定船的到港時間。 三、如在船到......

    MFC動態添加控件及響應函數

    MFC動態添加控件及響應函數 應該注意:控件也是一個窗口。在添加控件的時候空間變量最好是全部變量或者是局部指針變量,這樣即使函數結束也不會造成變量被銷毀。下面以動態添加......

    網絡發票打印控件操作手冊

    網絡發票打印控件操作手冊 1. 控件位置下載:首頁>>常用軟件下載>>下載中心>>辦稅軟件>>網絡開票打印控件. 2.下載解壓之后,雙擊文件CLodopPrint_Setup_for_Win32NT_2.047.exe......

主站蜘蛛池模板: 国产成人久久精品一区二区三区| 免费夜色污私人影院在线观看| 国产精品人成视频免费播放| 无码一区二区三区视频| 伊人久久亚洲综合影院首页| 免费夫妻生活片av| 玩弄丰满少妇xxxxx性多毛| 亚洲欧美日韩成人一区在线| 成 人影片 免费观看| 免费无码一区二区三区蜜桃大| 亚洲欧美日韩另类丝袜一区| 一本大道色婷婷在线| av色欲无码人妻中文字幕| 国产精品无码久久综合网| 日韩精品无码一区二区三区免费| 中文字幕网伦射乱中文| 一本大道无码日韩精品影视_| 无码人妻久久一区二区三区免费| 情侣做性视频在线播放| 久久国产免费福利永久| 国产人妻人伦精品1国产| 青青青青国产免费线在线观看| 在线观看国产日韩亚洲中| 国产亚洲精品精华液| 综合无码成人aⅴ视频在线观看| 99久久国产综合精品五月天| 日韩av免费无码一区二区三区| 中文字幕人妻伦伦| 亚洲精品无码久久千人斩| 亚洲国产精品无码久久久| 无码人妻品一区二区三区精99| 巨胸爆乳美女露双奶头挤奶| 狠狠色噜噜狠狠狠狠av| 天天av天天av天天透| 中文字幕欧美人妻精品一区| 免费国产黄线在线播放| 亚洲精品无码不卡av| 国产高清在线精品一区二区三区| 国产综合色在线视频区| 免费中文熟妇在线影片| 国产成人精品a∨一区二区|