0

我成功在我的LinearLayout中以編程方式添加了我的customView。現在我想按位置檢查複選框。這是我的代碼:Android Studio無法以編程方式啓用chackbox

<LinearLayout 
    android:id="@+id/mainLayout" 
    android:layout_width="match_parent" 
    android:layout_height="@dimen/recycler_view_item_height" 
    android:orientation="horizontal"> 
<TextView 
android:id="@+id/polygon_name" 
android:layout_width="wrap_content" 
android:layout_height="match_parent" 
android:gravity="center|left" 
android:layout_marginLeft="2dp" 
android:maxLines="1" 
android:singleLine="true" 
android:textColor="#4d4d4d" 
android:textSize="16dp" 
android:textStyle="bold" /> 

<TextView 
    android:id="@+id/vin_code" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:gravity="center|left" 
    android:layout_marginLeft="2dp" 
    android:maxLines="1" 
    android:singleLine="true" 
    android:textColor="#4d4d4d" 
    android:textSize="16dp"/> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
     <CheckBox 
      android:layout_marginLeft="2dp" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/checkBox" 
      android:layout_marginRight="10dp" 
      android:layout_gravity="center" 
      android:layout_centerInParent="true" 
      android:layout_alignParentRight="true" /> 

    </RelativeLayout> 


</LinearLayout> 

Java代碼:

final int childcount = linearLayout.getChildCount(); 
      for (int i = 0; i < childcount; i++) { 
       View view = linearLayout.getChildAt(i); 
       if (i == selectedPosition) { 
        LinearLayout mmLinearLayout = (LinearLayout) view; 
        for (int j = 0; j < mmLinearLayout.getChildCount(); j++) { 
         View mview = mmLinearLayout.getChildAt(i); 
         if (mview instanceof CheckBox) 
          ((CheckBox) mview).setChecked(true); 

        } 



        view.setBackgroundColor(activeColor); 
       } 
      } 

我debuged我的代碼和我的工作}這種,但我不能以編程方式選中複選框。 我該如何解決這個問題?謝謝大家

+1

您的複選框不是您的linearlayout的子項。給它一個ID並使用findViewById來代替。 – njzk2

回答

1

,您應該使用的

((CheckBox) view).setChecked(true); 

代替

((CheckBox) view).setVisibility(View.GONE); 

檢查複選框。

+0

對不起,我更新了我的源代碼,但仍然無法正常工作 – BekaKK