如上图,第二张,listview获得焦点时,如何让RadioButton还是选中的状态
下面是xml文件:
< ?xml version="1.0" encoding="utf-8"? >
< RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".HistoryActivity"
android:background="@mipmap/formbackground" >
< RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:id="@+id/relativeLayout"
style="@style/TopBar" >
< TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Logs"
android:id="@+id/tv_title"
android:layout_alignParentBottom="false"
android:layout_alignParentLeft="false"
android:layout_alignParentStart="false"
android:textSize="40sp"
android:gravity="center"
android:layout_centerInParent="true"
android:textColor="#fff" / >
< /RelativeLayout >
< RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/relativeLayout"
android:layout_centerHorizontal="true"
android:layout_marginBottom="80dp" >
< LinearLayout
android:orientation="vertical"
android:layout_width="1048dp"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:background="@mipmap/call_background"
android:layout_marginTop="30dp" >
< LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginTop="8dp" >
< RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1" >
< RadioButton
android:layout_width="124dp"
android:layout_height="44dp"
android:id="@+id/btn_call"
style="@style/DataButton"
android:background="@drawable/btn_data_border"
android:text="Call"
android:layout_centerInParent="true" / >
< /RelativeLayout >
< RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1" >
< RadioButton
android:layout_width="124dp"
android:layout_height="44dp"
android:id="@+id/btn_surveillance"
style="@style/DataButton"
android:background="@drawable/btn_data_border"
android:text="Surveillance"
android:layout_centerInParent="true" / >
< /RelativeLayout >
< /LinearLayout >
< ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/listView"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:listSelector="@drawable/selector"
android:layout_marginBottom="80dp" / >
< /LinearLayout >
< /RelativeLayout >
< /RelativeLayout >
< ?xml version="1.0" encoding="utf-8"? >
< selector
xmlns:android="http://schemas.android.com/apk/res/android" >
< item android:state_pressed="true" android:drawable="@mipmap/btn_data_border_p" / >
< item android:state_focused="true" android:drawable="@mipmap/btn_data_border_p" / >
< item android:drawable="@mipmap/btn_data_border_n" / >
< /selector >
< ?xml version="1.0" encoding="utf-8"? >
< selector xmlns:android="http://schemas.android.com/apk/res/android" >
< !-- 非触摸模式下获得焦点并单击时的背景图片 -- >
< item android:state_focused="true"
android:state_pressed="true"
android:drawable= "@mipmap/highlight" / >
< !-- 触摸模式下单击时的背景图片-- >
< item android:state_focused="false"
android:state_pressed="true"
android:drawable="@mipmap/highlight" / >
< !--选中时的图片背景-- >
< item android:state_selected="true"
android:drawable="@mipmap/highlight" / >
< !--获得焦点时的图片背景-- >
< item android:state_focused="true"
android:drawable="@mipmap/highlight" / >
< /selector >
回复讨论(解决方案)
listview获得焦点时 RadioButton.setChecked(true);
让radiobutton选中无非就是改变你的mData数据源。然后在getView方法中判定,如果是选中的,则设置radiobutton为选中。
每次点击item后要更新这个item所对应的mData的选中数据,然后notifyItemDataChanged(postion)
listview获得焦点时 RadioButton.setChecked(true);
那怎么区别现在是btn_call或者btn_surveillance?
让radiobutton选中无非就是改变你的mData数据源。然后在getView方法中判定,如果是选中的,则设置radiobutton为选中。
每次点击item后要更新这个item所对应的mData的选中数据,然后notifyItemDataChanged(postion)
如何得知,item选中的数据是btn_call还是btn_surveillance的呢?
listview获得焦点时 RadioButton.setChecked(true);
那怎么区别现在是btn_call或者btn_surveillance?
btn_call.isChecked(); 为 true 时 btn_call就是选中状态
你两个 RadioButton 应该用 RadioGroup 来装才对 才符合标准
RadioGroup 布局下包着两个RadioButton
listview获得焦点时 RadioButton.setChecked(true);
那怎么区别现在是btn_call或者btn_surveillance?
btn_call.isChecked(); 为 true 时 btn_call就是选中状态
你两个 RadioButton 应该用 RadioGroup 来装才对 才符合标准
RadioGroup 布局下包着两个RadioButton
好的,原先是用RadioGroup 来布局的
将checkbox的id取出来,然后通过一个属性来设置他的选中与取消效果等,而属性效果可以保存到起来用到的时候去取吧