某些默认小部件的布局可能不适合我,所以我使用自定义布局
例如,我使用SwitchPreference
<SwitchPreference
android:key="pre_key"
android:title="this is title"
android:switchTextOff=" "
android:switchTextOn=" "
android:layout="@layout/switch_preference"
android:defaultValue="true" />
这是switch_preference.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@android:id/title"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
/>
<Switch
android:id="@+id/switch_widget"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true" />
</RelativeLayout>
在这个例子中,标题是有效的,它可以显示正确的标题
但Switch无法正常工作,无法更改和恢复首选项值
如果使用自定义布局,如何找到窗口小部件ID?
更新问题:
我尝试使用android:id="@android:id/switch_widget"
,它会提示消息requires API level 24
,我忽略此消息并运行应用,结果无效。
然后我将minSdkVersion更改为24,并在其他设备(7.0)上运行该应用程序,这次一切正常。
但我的应用需要支持19,所以我将Switch
更改为android.support.v7.widget.SwitchCompat
并尝试android:id="@+id/switchWidget"
,然后在Android 5.0.1上安装该应用,这次它不是再次工作。
API 24之前是否有任何ID可以正常工作?应该在API 14中添加SwitchPreference,为什么id在19中不起作用?
答案 0 :(得分:0)
交换机的id是git status #make sure both the .gitmodules and sm (repo2 name) are staged (changes to be committed)
git commit -m 'commit for .gitmodules and sm (repo2 name)'
git push -f #force push
使用它,它将由android自动获取。
android:id="@+id/switchWidget"