0
내가 안드로이드에 아주 새로운 그리고 난 그 항목을 다음과 같이 정의됩니다 사용자 정의 다중 선택 목록보기를 사용하기 위해 노력하고있어 발행 :다중 선택 목록보기 버튼 : 초점
<?xml version="1.0" encoding="utf-8"?>
<com.jroy.android.views.CheckableLinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:gravity="left|center_vertical">
<CheckBox
android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:background="@drawable/checkbox_selector"
android:button="@null" />
<TextView
android:id="@+id/name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />
<Button
android:id="@+id/btn_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:background="@drawable/button_view_selector" />
</com.jroy.android.views.CheckableLinearLayout>
ListView에의 선택 모드 '선다형 문제'로 설정하고 CheckableLinearLayout가 확인 가능 인터페이스를 다음과 같은 방법으로 구현하고있는 LinearLayout의 서브 클래스입니다 :
public class CheckableLinearLayout extends LinearLayout implements Checkable {
private Checkable mCheckable;
@Override
protected void onFinishInflate() {
super.onFinishInflate();
// Find checkable view
for (int i = 0, childCount = getChildCount(); i < childCount; ++i) {
View v = getChildAt(i);
if (v instanceof Checkable) {
mCheckable = (Checkable) v;
v.setFocusable(false);
v.setClickable(false);
break;
}
}
}
public CheckableLinearLayout(Context context) {
super(context);
}
public CheckableLinearLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean isChecked() {
return (mCheckable != null)
? mCheckable.isChecked()
: false;
}
@Override
public void setChecked(boolean checked) {
if (mCheckable != null) {
mCheckable.setChecked(checked);
}
}
@Override
public void toggle() {
if (mCheckable != null) {
mCheckable.toggle();
}
}
}
문제는 내가 어떤 항목을 확인할 수 없다는 것입니다을, 단지를 가질 수있는 버튼처럼 보인다 초점. 나는 초점에 대해 다른 것들을 시도했지만 제대로 작동하지 못했습니다 ...
달성하려는 일을하는 올바른 방법은 무엇입니까? 감사합니다,
좋아 지금은 터치하여 일부 항목을 확인할 수 있습니다, 감사합니다,하지만 난 프로그래밍을 확인하려고 할 때 (CheckBox의 # setChecked (부울) 또는 ListView에 번호는 (INT, 부울) setItemChecked) 체크 박스의 모양을 변경되지 않습니다 (하지만 그 상태가 내가 원하는대로 올바르게 설정되어 있습니다) ... –
죄송합니다, ListView # setItemChecked가 완벽하게 작동합니다. 세부 사항을 확인하기 위해 항목을 터치하는 동안 항목에 포함 된 단추도 '눌린 상태'로 표시됩니다. 아무도이를 해결하는 방법을 알고 있습니까? –