2016-12-19 7 views
0

相対レイアウトにスピナーを持つカスタムコントロールを使用しています。私の活動では、これらのカスタムコントロールの2つを使用する必要があります。問題は同じアクティビティからスピンナにアクセスするときです。には、同じ子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); 

アンドロイドは、私が活動に複数のカスタムレイアウトを追加する必要がありますどのように、同じ活動でこれらのIDを区別していない場合。

答えて

0

同じxmlレイアウトでは、同じIDを2回使用することはできません。非常に単純な方法で、異なるスピナーIDを持つ2つのカスタムコントロールを宣言できます。カスタムコントロールを再利用する場合は、必要に応じて他のアクティビティで行います。あなたが任意のIDを宣言するときは、同じXMLに同じ名前を持つ任意の2つの以上のウィジェット/レイアウトを宣言するので、それはそれはあなたに同じ数値結果を返す、数値パターンにR.javaクラスに保存した

0

。 IDを変更する必要があります。 あなたを助けてくれることを願っています。

0

同じxmlファイル内にidを複数回使用することはできません。 これを行うには、カスタムコントロールレイアウトをアクティビティの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> 
関連する問題