1. 程式人生 > >RadioButton點選事件不起作用的坑

RadioButton點選事件不起作用的坑

最近做開發用到了RadioButton, 並自定義了樣式,把RadioButton的按鈕去掉了,換成了自定義的點選效果,這時候點選看不見是否被選中的效果。於是問題來了,第一次點選沒問題,第二次以後點選就失效了。

佈局是這樣的:

<RadioButton
android:id="@+id/radiobtn"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:button="@null"
android:drawableTop="@drawable/radiobt_selector" android:gravity="center"android:text="@string/rbtn_text" android:textColor="@color/white" android:textSize="@dimen/24sp"/>

實現點選事件是這樣的:

private RadioGroup.OnCheckedChangeListener mOnCheckedChangeListener = new RadioGroup.OnCheckedChangeListener()
{
    @Override
public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) { switch (checkedId) { case R.id.radiobtn:Log.e(TAG, "pc_radiobtn"); break; default: break; } } };
mRadioGroup.setOnCheckedChangeListener(mOnCheckedChangeListener
);


後來仔細想想RadioButton是單選框,點選一次後,RadioButton已經被選中了,再點選的時候當然不會觸發。解決方法就是在點選事件加一句程式碼:

case R.id.pc_radiobtn:pcRadioButton.setChecked(false); // 每次點選都設定false
Log.e(TAG, "pc_radiobtn");
    break;

相關推薦

RadioButton事件作用

最近做開發用到了RadioButton, 並自定義了樣式,把RadioButton的按鈕去掉了,換成了自定義的點選效果,這時候點選看不見是否被選中的效果。於是問題來了,第一次點選沒問題,第二次以後點選就失效了。 佈局是這樣的: <RadioButton andro

為什麼layer中彈出層內容事件作用(動態渲染出的button無法

  1.click只能為頁面現有的元素繫結點選事件,如果是動態生成的新的元素,是沒有事件的 2.而$(document).on("click","指定的元素",function(){});方法則是將指定的事件繫結在document上,而新產生的元素如果符合指定的元素,那就觸發此事件 &

react初學事件作用

學習react的時候發現點選事件沒有起作用,最後發現是onClick事件裡C沒有大寫 <button onClick = {increate}>點選 </button>

Android-ListView中巢狀(ListView)控制元件時item的事件作用的問題

解決:1、在主listview佈局檔案中的listview中新增屬性 android:focusable="false"              2、在子listview中最頂上的佈局檔案新增屬性

jquery觸發a標簽的事件作用

而不是 nbsp 原來 func tel 但是 class 想要 子元素 最近項目中使用click觸發a標簽的點擊事件$(‘a‘).click()觸發不了。 原來$(‘a‘).click()並不能觸發a標簽中內容的點擊事件,只相當於觸發了a本身的onclick,而不是像用戶

layer中點事件作用??

不起作用: $('#test').on('click', function() { layer.msg('響應點選事件'); }); 起作用了: $(document).on('click', '#test', function() { layer.msg('響應點選

給Layout新增按鈕效果作用的解決方法

很喜歡Material Design的按鈕效果,想應用在Layout上,可是寫好了style檔案,並且設定了layout的background發現並不起作用,查詢了一下得出解決方案: 新增android:clickable="true" 將這個xml的屬性改為true即可。

事件生效,作用,多半是元素被遮擋。css元素被遮擋,選擇

有過js控制點選不生效的時候嗎,這時就要考慮你的元素是否被其他元素遮擋了。這裡說的遮擋並不是看不到。而是能看到,卻無法透過另一元素選中它。 可以試一下以下兩種方案: 1、css調節z-index 首先要考慮的是更外層的元素遮擋了靠裡層的元素。比如外層遮擋為

ios微信瀏覽器click事件作用的解決方法

ont func 手機 alert 微信 搜索 pan font js代碼 $(document).on( "click", ".weui_cell", functi

js_jquery單機事件作用

這樣的 解決 .com 作用 alt click str 圖片 col 一、發現問題 Jquery的單機事件不能這樣寫 二、分析解決 因為頁面先加載的,然後點擊所以不起作用,這個時候可以用js的onclick()這種辦法,或者用下面這樣的: 第一種 第二種

為動態新增元素新增事件所遇到的

目的:有一個html,要達到的目的是:當滑鼠進入某一個 li 時,它自動為它新增一個class=“co“,然後再為這個co寫一個點選事件; <body>     <div id="aaa">        

在小程式中巢狀h5頁面,事件觸發

最近在寫小程式,由於小程式快滿了,就把頁面寫成h5,嵌在小程式裡,原以為很簡單,沒想到遇到問題,問題不多,但是很大 第一個就是點選事件不觸發, 場景如下:     點選按鈕觸發ajax請求,請求成功之後跳轉到另一個頁面,但是頁面始終不跳轉。 解決方法,將http開

iOS 攔截導航欄返回按鈕事件(只攔截事件改變系統按鈕樣式)

#import <UIKit/UIKit.h> @protocol BackButtonHandlerProtocol <NSObject> @optional /** 重寫下面的方法以攔截導航欄返回按鈕點選事件,返回 YES 則 pop,NO 則不 pop @

IE DIV背景透明,事件響應解決方案

IE DIV背景透明,給DIV繫結點選事件,   <span style="color:#000000">$("div").bind("click", function(){ alert('click me.'); });</span> &nb

Unity__Canvas Group (使事件被UI遮蔽或UI的所有子物件都參與互動)

屬性: Alpha:該組UI元素的透明度。需要注意,每個UI最終的透明度是由此值和自身的alpha數值相乘得到。Interactable:是否需要互動(勾選則可互動),同時作用於該組全部UI元素BlcokRaycasts:如果需要圖形射線(GraphicRaycaster)檢測。勾選後,可將此元

jquery外掛select2事件作用(select2-3.5.4)

jquery外掛select2事件不起作用 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>&g

三星手機事件執行或偶爾執行

這個問題還真是也頭疼呢,ScrollView巢狀RecycleView(沒有滑動事件,最多顯示四個item),然後三星S6手機點選事件有問題。最後發現是監聽ScrollView滑到底部的時候攔截了點選事件,在某些手機上出現了不相容的情況。感謝同事的幫助

ECharts 非圖表區域的事件觸發問題

1. 通過 myChart.getZr().on('click', fn) 監聽整個圖表的點選事件,註冊回撥 myChart.getZr().on('click', () => { //拿到index即可取出被點選資料的所有資訊 console.log(clickIndex) })

Asp.net_解決在高版本ie瀏覽器下按鈕事件觸發

這是微軟的一個相容bug,通過伺服器補丁方式解決。 沒有此修補程式時出現的常見問題 請考慮下面的方案: 您可以使用 Windows Internet Explorer 10 來訪問基於 ASP.

js onload事件作用

前一段事件遇到一個奇怪的問題,jsp頁面中寫一個onload事件,發現居然不起作用,檢視原始檔,bady的onload後居然沒有方法名??? <body onload="這裡居然是空的" bottommargin="0" leftmargin="0" topmar