使用RadioButton怎么實(shí)現(xiàn)選擇后可取消功能?相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
成都創(chuàng)新互聯(lián)公司于2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元拱墅做網(wǎng)站,已為上家服務(wù),為拱墅各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108
一、第一種實(shí)現(xiàn)方式
一種是單個 Radiobutton進(jìn)行逐個設(shè)置setOnClickListener方法,通過setChecked
改變選中和取消的狀態(tài),這種的問題在于如果有多個Radiobutton,相對而言就非常的耗時。不過我們可以先來看看它的具體實(shí)現(xiàn)。
mRadioBtDhhs.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { setHcfs1(v, DHHS); } }); mRadioBtJmhs.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { setHcfs1(v, JMHS); } }); mRadioBtZppd.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { setHcfs1(v, ZPPD); } });
setHcfs1方法:
private void setHcfs1(View view, String hcfs) { if (hcfs.equals(mHsfs1)) { ((RadioButton) view).setChecked(false); mHsfs1 = ""; } else { mHsfs1 = hcfs; ((RadioButton) view).setChecked(true); } }
其中的mHsfs1參數(shù)是用來記錄每次選中的值。
二、第二種實(shí)現(xiàn)方式
第二種采用的是RadioGroup.getChildAt(i)的方式設(shè)置所有Radiobutton的setOnClickListener方法。這樣比較靈活,不管是有多少Radiobutton,也不需要額外的操作。
具體實(shí)現(xiàn)如下:
for (int i = 0; i < mRgHstj.getChildCount(); i++) { mRgHstj.getChildAt(i).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { switch (v.getId()) { // 電話核實(shí) case R.id.radioBt_dhhs: setHcfs(v, DHHS); break; // 見面核實(shí) case R.id.radioBt_jmhs: setHcfs(v, JMHS); break; // 照片判斷 case R.id.radioBt_zppd: setHcfs(v, ZPPD); break; } } }); }
其中mRgHstj是RadioGroup。
setHcfs方法的實(shí)現(xiàn): private void setHcfs(View view, String hcfs) { if (hcfs.equals(mHsfs)) { mRgHstj.clearCheck(); mHsfs = ""; } else { mHsfs = hcfs; mRgHstj.check(view.getId()); } }
看完上述內(nèi)容,你們掌握使用RadioButton怎么實(shí)現(xiàn)選擇后可取消功能的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!