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我的代碼和我的工作}這種,但我不能以編程方式選中複選框。 我該如何解決這個問題?謝謝大家
您的複選框不是您的linearlayout的子項。給它一個ID並使用findViewById來代替。 – njzk2