SimpleCursorAdapter를 확장했으며 bindView에서 이상한 문제가 발생했습니다. bindView는 첫 번째 행에서 두 번 호출되는 것처럼 보입니다.android SimpleCursorAdapter bindView가 첫 번째 행을 복제하는 이유는 무엇입니까?
첫 번째 행만 복제 된 것처럼 보입니다. 커서가 위치한 방식과 관련이 있지만 모든 어댑터 클래스를 살펴본 결과이 위치를 찾을 수없는 느낌이 들었습니다.
다음은 bindView에 대한 코드입니다. 일부 로그가 삽입되어 표시됩니다. 여기
@Override
public void bindView(View view, Context context, Cursor cursor) {
final ViewBinder binder = getViewBinder();
final int count = mTo.length;
final int[] from = mFrom;
final int[] to = mTo;
Log.v("builder", "cursor count"+cursor.getCount());
Log.v("builder", "mTo.length"+count);
//Bind all Views
for (int i = 0; i < count; i++) {
final View v = view.findViewById(to[i]);
if (v != null) {
boolean bound = false;
if (binder != null) {
bound = binder.setViewValue(v, cursor, from[i]);
}
if (!bound) {
String text = cursor.getString(from[i]);
v.setVisibility(View.VISIBLE);
if (text == null && !(v instanceof ImageView)) {
text = "";
v.setVisibility(View.GONE);
}
if (v instanceof TextView) {
setViewText((TextView) v, text);
if (v instanceof EditText){
EditText et = (EditText) v;
Log.v("builder", "setting up edittext"+cursor.getPosition()+i);
// setUpEditors(view, et);
}
} else if (v instanceof ImageView) {
setViewImage((ImageView) v, text);
} else {
throw new IllegalStateException(v.getClass().getName() + " is not a " +
" view that can be bound by this SimpleCursorAdapter");
}
}
}
}
}
은이 개 항목
06-22 15:17:28.337: V/builder(27573): cursor count2
06-22 15:17:28.337: V/builder(27573): mTo.length5
06-22 15:17:28.337: V/builder(27573): setting up edittext02
06-22 15:17:28.337: V/builder(27573): setting up edittext03
06-22 15:17:28.337: V/builder(27573): setting up edittext04
06-22 15:17:28.417: V/builder(27573): cursor count2
06-22 15:17:28.417: V/builder(27573): mTo.length5
06-22 15:17:28.417: V/builder(27573): setting up edittext02
06-22 15:17:28.427: V/builder(27573): setting up edittext03
06-22 15:17:28.427: V/builder(27573): setting up edittext04
06-22 15:17:28.517: V/builder(27573): cursor count2
06-22 15:17:28.517: V/builder(27573): mTo.length5
06-22 15:17:28.527: V/builder(27573): setting up edittext12
06-22 15:17:28.527: V/builder(27573): setting up edittext13
06-22 15:17:28.527: V/builder(27573): setting up edittext14
여기에있는 ListView가있는 XML이있어 함께
06-22 15:15:03.797: V/builder(27573): cursor count1
06-22 15:15:03.797: V/builder(27573): mTo.length5
06-22 15:15:03.807: V/builder(27573): setting up edittext02
06-22 15:15:03.807: V/builder(27573): setting up edittext03
06-22 15:15:03.807: V/builder(27573): setting up edittext04
06-22 15:15:03.887: V/builder(27573): cursor count1
06-22 15:15:03.887: V/builder(27573): mTo.length5
06-22 15:15:03.897: V/builder(27573): setting up edittext02
06-22 15:15:03.897: V/builder(27573): setting up edittext03
06-22 15:15:03.907: V/builder(27573): setting up edittext04
다음 커서에서 하나의 항목 만 내 출력
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" android:orientation="vertical">
<TextView
android:id="@+id/textView6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/labels_background"
android:text="@string/lb_item_type"
android:textSize="@dimen/dm_maint_tv" />
<CheckBox
android:id="@+id/mt_base"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/lb_base" />
<TextView
android:id="@+id/textView10"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@color/labels_background"
android:text="@string/lb_build"
android:textSize="@dimen/dm_maint_tv" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp" android:layout_weight="1" android:id="@+id/builder">
<ListView
android:id="@+id/mt_build_list"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
<ImageView
android:id="@+id/mt_additem"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="3dp"
android:layout_marginTop="3dp"
android:scaleType="centerInside"
android:src="@drawable/ic_input_add" android:layout_gravity="top|right"/>
</FrameLayout>
WTF는 – connoisseur
을 의미합니다. 이는 서사를 즐겼 음을 의미합니다. (즉, 문제의 증거가 없다 ... 문제가 있음을 암시하지 않는다). –
및 I QUOTE "bindView에서 이상한 문제가 발생합니다. 첫 번째 행에서 두 번 호출되는 것으로 보입니다." – connoisseur