我有两个布局,一个用于API级别-14之前,另一个用于后续版本。我需要在level-14 API之前使用切换按钮,在14级之后使用切换按钮。
问题是我想在R.id.button1中使用两个相同的id或者我必须使每个具有不同的id并在Java代码中检查运行的API的版本,以便我找到视图通过适用于API的id。如果是这样,我该怎么做才能提供代码示例。 感谢您的时间。
这些是XML文件
布局-V14 :
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Switch
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView1"
android:layout_alignBottom="@+id/textView1"
android:layout_alignParentRight="true"
android:layout_marginRight="16dp" />
</RelativeLayout>
普通布局:
<?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" >
<ToggleButton
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView1"
android:layout_alignBottom="@+id/textView1"
android:layout_alignParentRight="true"
android:layout_marginRight="16dp" />
</RelativeLayout>
Java代码
CompoundButton button = (CompoundButton) findViewById(R.id.button1);
答案 0 :(得分:1)
它们都扩展了CompoundButton,因此你可以使用相同的ID,但如果你想要相同的代码,你必须将你的使用限制在CompoundButton类。
修改强>
CompoundButton button = (CompoundButton) findViewById(R.id.button1);
button.setChecked(checked);
答案 1 :(得分:1)
您可以使用Build.VERSION以编程方式获取api级别。
修改强>
if(Build.VERSION_CODES.ICE_CREAM_SANDWICH == Build.VERSION.SDK_INT);
((Switch)v).switchMethodSpecefic();