我正在使用在相对布局中具有微调器的自定义控件。在我的活动中,我必须使用其中两个自定义控件。问题是当从活动访问微调器时返回相同的id。
自定义控件的代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<Spinner
android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:layout_alignParentLeft="true"
android:background="@drawable/bg_white"
android:popupBackground="@drawable/bg_white"/>
<Button
android:layout_width="15dp"
android:layout_height="10dp"
android:layout_marginRight="8dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="20dp"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:layout_centerInParent="false"
android:clickable="false"
android:background="@drawable/btn_dropdown"/>
</RelativeLayout>
活动代码:
RelativeLayout rl_category,rl_subcategory;
Spinner sp_category,sp_subcategory;
rl_category=(CustomSpinner) findViewById(R.id.sp_category);
rl_subcategory=(CustomSpinner) findViewById(R.id.sp_subcategory);
sp_category=(Spinner) rl_category.findViewById(R.id.spinner);
sp_subcategory=(Spinner) rl_subcategory.findViewById(R.id.spinner);
如果android没有在同一个活动中区分这些ID,那么我应该如何在活动中添加多个自定义布局。
答案 0 :(得分:0)
在相同的xml
布局中,您不能两次使用相同的ID。以非常简单的方式,您可以使用不同的微调器id声明两个自定义控件。您希望重用自定义控件,根据您的要求在其他活动中执行此操作。
答案 1 :(得分:0)
当您声明任何ID已在数字模式中保存在 R.java 类中时,因此您在同一 XML 然后它将返回相同的数字结果。你需要更改ID。 希望它会对你有所帮助。
答案 2 :(得分:0)
您不能在同一个xml文件中多次使用id
。
为此,您可以在activity的xml中多次包含自定义控件布局。
在这里,我已经包含了两次自定义布局
<强> activity_main.xml中强>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
android:id="@+id/customControl1"
layout="@layout/custom_layout"/>
<include
android:id="@+id/customControl2"
layout="@layout/custom_layout"/>
</LinearLayout>
以及活动代码
sp_category=(Spinner) findViewById(R.id.customControl1).findViewById(R.id.spinner);
sp_subcategory=(Spinner) findViewById(R.id.customControl2).findViewById(R.id.spinner);
<强> custom_layout.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<Spinner
android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:layout_alignParentLeft="true"
android:background="@drawable/bg_white"
android:popupBackground="@drawable/bg_white"/>
<Button
android:layout_width="15dp"
android:layout_height="10dp"
android:layout_marginRight="8dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="20dp"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:layout_centerInParent="false"
android:clickable="false"
android:background="@drawable/btn_dropdown"/>
</RelativeLayout>