今天要介紹的是java檔時可以做的一些設定,像是點擊事件的監聽器、改變文字框內的內容等等的實用的功能,介紹一樣會從TextView開始介紹,列出一些基礎或特別的設定。
setText()
,這個指令可以設定TextView的文字,沒有限制可以輸入的文字型態,甚至想將陣列顯示出來也可以。setOnClickListener()
,這個就是我上面所提到的點擊事件監聽器
,這個指令其實大部分的物件都可以使用,有時候有一些樣貌上的設定相比在Button設定,在TextView上使用會比較簡單。textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//在這裡打上你想執行的程式,比如:setText()
}
});
其他還有setOnShortClick、setOnLongClick...許多功能相似的設定可以使用。
SpannableString
,這個可以針對TextView裡面的文字作細微的操作,比如可以將部分文字變色,還有部分文字背景顏色變色,甚至想將部分文字放大、縮小都可以,那麼下面就開始介紹吧~SpannableString span = new SpannableString("這裡填入想要讓TextView顯示的文字");
span.setSpan(new ForegroundColorSpan(R.color.black),0,3, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
span.setSpan(new BackgroundColorSpan(R.color.black),3,6,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
span.setSpan(new StyleSpan(Typeface.BOLD_ITALIC),6,9,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
span.setSpan(new UnderlineSpan(),9,12,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
span.setSpan(new RelativeSizeSpan((int) 2.5),12,19,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(span);
依序從頭開始介紹:
SpannableString span = new SpannableString()
,這裡要在 () 內加入想顯示的文字。span.setSpan
,這個部分是是使用SpannableString的起手式,所有設定都是先setSpan才開始。ForegroundColorSpan
,可以改變文字的顏色,使用方法就像上面那樣,ForegroundColorSpan("這裡填入顏色
"可以輸入色碼例如:000000),"起始位置
","結尾
", "Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
"通常都會使用這個參數,意思是只在起始位置到結尾套用效果);BackgroundColorSpan
,這個是用來改變選定位置的背景顏色。StyleSpan
,這個可以改變選定位置的字體,可以改變的有粗體、斜體、粗斜體......,在寫法上有一點點不一樣,StyleSpan(Typeface.字體
),可以看到要調整字體時 () 內要寫Typeface
,然後 .
之後要寫想改變的字體,比如:bold(粗體),後面參數就像上面說的都是一樣的寫法。UnderlineSpan
,可以在選定的位置上加入下底線。RelativeSizeSpan
,這個可以將選定位置的文字以倍數放大、縮小,用法就是在()內加上要乘上的倍數。textView.setText(span);
最後最重要的,要將創建好的SpannableString 丟給TextView顯示。其他更詳細的推薦這篇文章TextView(文本視圖)詳解
setText()
,用法跟TextView的是一樣的,可以用在輸入帳號密碼時,輸入錯誤就將密碼清除,這時候就要在()內加入"",就可以將原本輸入的清除掉;或是你也可以運用在模糊搜尋上,比如在輸入那欄填入部分的詞,然後點選Spinner(下拉式選單),就會列出相關的資料,在點選就將資料填入到EditText上,諸如此類的一些應用。getText()
,這個指令是用來取得輸入的值,我可以結合TextView,將輸入的值用getText()丟給TextView顯示,不過記得後面要加上.toString
,才可以完整的獲取你所輸入的值。addTextChangedListener()
,這個的意思是EditText的變化監聽器,全貌長這樣editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
//這裡是 在使用到editText之前執行的動作
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
//這裡是 在輸入中時會做的事
}
@Override
public void afterTextChanged(Editable editable) {
//這裡是 輸入完後會做的事,輸入完就是按下enter或done退出EditText的介面的時候
}
});
setOnClickListener
,不過會出現一個問題,是他所判定的點擊是在點進輸入介面時再點一下才會觸發點擊事件,因此若真的要使用的話,就自己再斟酌一下要不要使用囉~Button可以用的跟上面的差不了多少,最常使用的不外乎就是setOnClickListener
、setClickable
,前者上面已經介紹過了,後者我來稍微講解一下
setClickable
,可以設定按鈕現在是能按或是不能按,參數的部分打true
就是可以點選的意思,反之則不行,可以將它使用在沒有輸入完必要的資訊,或沒有勾選同意,按鈕就不能夠按。