日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 的CompoundButton(抽象类按钮)、StringBuffer(字符串变量)

發(fā)布時(shí)間:2024/8/1 Android 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 的CompoundButton(抽象类按钮)、StringBuffer(字符串变量) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、寫在前面的話

本人40歲純小白一枚,最近對Android APP有了興趣,目前的任務(wù):通過Android Studio 利用Apche poi 、EasyExcel等第三方庫,編寫APP,實(shí)現(xiàn)移動端APP 與后臺Excel的數(shù)據(jù)交互。
這次利用CSDN平臺記錄下自己的成長。
純屬小白,有概念或者描述錯(cuò)誤,希望大佬們不吝賜教,再此謝過。

2、任務(wù)目標(biāo)

目前正在學(xué)習(xí)這本書,在做P110頁的作業(yè)時(shí),發(fā)現(xiàn)的問題:

  • 作業(yè)要求,點(diǎn)擊“進(jìn)入主頁”的按鈕,一次性獲取已近選取的多選框的text屬性,然后Toast出來。這個(gè)比較簡單,為按鈕添加單擊事件監(jiān)聽器,根據(jù)id判斷CheckBox的狀態(tài),如果isChecked,則獲取其text屬性,然后賦值給string,依次判斷,依次為string+,實(shí)現(xiàn)字符串的連接效果,達(dá)到一次性獲取已選項(xiàng)的目的。
  • 而我的想法是每次選擇時(shí):(1)就直接獲取(省去按鈕的作用),然后Toast出來。(2)點(diǎn)選時(shí),一次性獲取到 全部的已選項(xiàng)text屬性,然后Toast出來。
    2.1 第一種想法,已近在大佬的幫助下解決,就是利用CompoundButton(抽象類按鈕)設(shè)置一個(gè)監(jiān)聽器,根據(jù)監(jiān)聽器的名稱(listener),監(jiān)聽全部的CheckBox控件,只需要為CheckBox的setOnCheckedChangeListener監(jiān)聽器設(shè)置相同的名稱即可。格式為chb1.setOnCheckedChangeListener(listener)。
    2.2一次性獲取到 全部的已選項(xiàng)text屬性的想法,卻沒有實(shí)現(xiàn)。直到今天碰到了StringBuffer(字符串變量)便想利用其append的字符串追加方法,來實(shí)現(xiàn)。
    3.思路:利用CompoundButton監(jiān)控所有CheckBox,當(dāng)判斷某一個(gè)被選中時(shí),利用StringBuffer的append方法,完成字符串的連接。
  • 3、實(shí)現(xiàn)過程

    3.1布局文件的編寫

    ===================省略= ===============

    3.1邏輯的實(shí)現(xiàn)

    public class MainActivity extends AppCompatActivity { //1.定義不同類型的變量public CheckBox chb1, chb2, chb3, chb4, chb5, chb6, chb7, chb8, chb9, chb10, chb11;public Button btn1;public StringBuffer buffer; //注意:buffer變量為StringBuffer類型(它的初始化方法也不同,下面會有注釋)@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//2.獲取CheckBox控件chb1 = findViewById(R.id.chb1);chb2 = findViewById(R.id.chb2);chb3 = findViewById(R.id.chb3);chb4 = findViewById(R.id.chb4);chb5 = findViewById(R.id.chb5);chb6 = findViewById(R.id.chb6);chb7 = findViewById(R.id.chb7);chb8 = findViewById(R.id.chb8);chb9 = findViewById(R.id.chb9);chb10 = findViewById(R.id.chb10);chb11 = findViewById(R.id.chb11);//添加CompoundButton的“勾選狀態(tài)變化監(jiān)聽器”(OnCheckedChangeListener),其中l(wèi)istener為監(jiān)聽器名稱CompoundButton.OnCheckedChangeListener listener = new CompoundButton.OnCheckedChangeListener() {@Override//監(jiān)聽器的onCheckedChanged事件public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {buffer = new StringBuffer(); //初始化buffer字符串變量if (chb1.isChecked()){ //如果chb1被選中//獲取chb1的Text,利用 buffer的append方法,將字符串追加到 buffer變量中去,以下的判斷邏輯,于此相同,不再贅述。buffer.append(chb1.getText().toString()+" "); }if (chb2.isChecked()){buffer.append(chb2.getText().toString()+" ");}if (chb3.isChecked()){buffer.append(chb3.getText().toString()+" ");}if (chb4.isChecked()){buffer.append(chb4.getText().toString()+" ");}if (chb5.isChecked()){buffer.append(chb5.getText().toString()+" ");}if (chb6.isChecked()){buffer.append(chb6.getText().toString()+" ");}if (chb7.isChecked()){buffer.append(chb7.getText().toString()+" ");}if (chb8.isChecked()){buffer.append(chb8.getText().toString()+" ");}if (chb9.isChecked()){buffer.append(chb9.getText().toString()+" ");}if (chb10.isChecked()){buffer.append(chb10.getText().toString()+" ");}if (chb11.isChecked()){buffer.append(chb11.getText().toString()+" ");}Toast.makeText(MainActivity.this, "您選中的是:" + buffer, Toast.LENGTH_SHORT).show();}};//為其余CheckBox的setOnCheckedChangeListener監(jiān)視器設(shè)置相同的監(jiān)聽器名稱(listener),以實(shí)現(xiàn)抽象類按鈕CompoundButton對其的監(jiān)聽。chb1.setOnCheckedChangeListener(listener);chb2.setOnCheckedChangeListener(listener);chb3.setOnCheckedChangeListener(listener);chb4.setOnCheckedChangeListener(listener);chb5.setOnCheckedChangeListener(listener);chb6.setOnCheckedChangeListener(listener);chb7.setOnCheckedChangeListener(listener);chb8.setOnCheckedChangeListener(listener);chb9.setOnCheckedChangeListener(listener);chb10.setOnCheckedChangeListener(listener);chb11.setOnCheckedChangeListener(listener);} }

    4、總結(jié)

  • Android中,CompoundButton(勾選狀態(tài)變化監(jiān)聽器),為抽象的復(fù)合按鈕,因?yàn)槭浅橄箢?#xff0c;所以不能直接使用,它的派生類有CheckBox(復(fù)選框)、RadioButton(單選框)、Switch(開關(guān)按鈕),這些派生類都能使用CompoundButton的屬性和方法。(來自:歐陽燊)
  • 至于StringBuffer(字符串變量)的介紹,大家可以參考 https://baike.baidu.com/item/StringBuffer/1156529?fr=aladdin,其與String的不同之處,它的方法和屬性亦可百度得到。
  • 總結(jié)

    以上是生活随笔為你收集整理的Android 的CompoundButton(抽象类按钮)、StringBuffer(字符串变量)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。