如何使用切换和切换按钮将布局调整为多Android API级别?

时间:2013-02-07 09:50:49

标签: android android-layout

我有两个布局,一个用于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);

2 个答案:

答案 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();