iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0
Mobile Development

Android Studio開發過程和介紹系列 第 6

【DAY 06】 TextView、EditText、Button 介紹 (下)

  • 分享至 

  • xImage
  •  

前言

今天要介紹的是java檔時可以做的一些設定,像是點擊事件的監聽器、改變文字框內的內容等等的實用的功能,介紹一樣會從TextView開始介紹,列出一些基礎或特別的設定。

  • 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);

依序從頭開始介紹:

  1. SpannableString span = new SpannableString(),這裡要在 () 內加入想顯示的文字。
  2. span.setSpan,這個部分是是使用SpannableString的起手式,所有設定都是先setSpan才開始。
  3. ForegroundColorSpan,可以改變文字的顏色,使用方法就像上面那樣,ForegroundColorSpan("這裡填入顏色"可以輸入色碼例如:000000),"起始位置","結尾", "Spanned.SPAN_EXCLUSIVE_EXCLUSIVE"通常都會使用這個參數,意思是只在起始位置到結尾套用效果);
  • 基本上後面要加的參數都是同樣的寫法,所以寫法上就不多作介紹,除非有比較特別的寫法才會著重介紹,下面我就列出一些比較有趣的
  1. BackgroundColorSpan,這個是用來改變選定位置的背景顏色。
  2. StyleSpan,這個可以改變選定位置的字體,可以改變的有粗體、斜體、粗斜體......,在寫法上有一點點不一樣,StyleSpan(Typeface.字體),可以看到要調整字體時 () 內要寫Typeface,然後 . 之後要寫想改變的字體,比如:bold(粗體),後面參數就像上面說的都是一樣的寫法。
  3. UnderlineSpan,可以在選定的位置上加入下底線。
  4. RelativeSizeSpan,這個可以將選定位置的文字以倍數放大、縮小,用法就是在()內加上要乘上的倍數。
  5. textView.setText(span);最後最重要的,要將創建好的SpannableString 丟給TextView顯示。
    結果如下:
    https://ithelp.ithome.com.tw/upload/images/20230829/20161500SQnuBQhwoB.png

其他更詳細的推薦這篇文章TextView(文本視圖)詳解

EditText

  • 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的介面的時候
    }
});
  • 這邊想補充一下,就想我上面說的 EditText也可以使用setOnClickListener,不過會出現一個問題,是他所判定的點擊是在點進輸入介面時再點一下才會觸發點擊事件,因此若真的要使用的話,就自己再斟酌一下要不要使用囉~

Button

Button可以用的跟上面的差不了多少,最常使用的不外乎就是setOnClickListenersetClickable,前者上面已經介紹過了,後者我來稍微講解一下

  • setClickable,可以設定按鈕現在是能按或是不能按,參數的部分打true就是可以點選的意思,反之則不行,可以將它使用在沒有輸入完必要的資訊,或沒有勾選同意,按鈕就不能夠按。

今天簡單介紹了一些常用的、比較特別的程式,下一篇會教怎麼將這三個物件結合做出一個屬於你的BMI計算機APP!


上一篇
【DAY 05】 TextView、EditText、Button 介紹 (上)
下一篇
【DAY 07】 怎麼製作屬於你的BMI計算機!
系列文
Android Studio開發過程和介紹30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言