CursorAdapter 클래스의 하위 항목과 모든 항목에 두 개의 TextView가있는 ListView가 있습니다. 하나는 텍스트를 들고 다른 하나는 숫자를 들고 있습니다.커서의 열 값에 따라 ListView 항목의 요소를 숨 깁니다.
텍스트는 하나의 커서 열에서 가져온 것이고 다른 수에서 가져온 것입니다. 나는 그것이 0에 해당되는 경우 번호를 숨길
목록 항목에 대한 나의보기는 다음과 같습니다
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dp">
<TextView
android:background="@drawable/task_count_indicator"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentRight="true"
android:layout_gravity="center_vertical"
android:textColor="@color/white"
android:id="@+id/txtTaskCount" />
<TextView
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:ellipsize="marquee"
android:textSize="18sp"
android:layout_alignParentLeft="true"
android:layout_gravity="center_vertical"
android:id="@+id/placeItemName"/>
</RelativeLayout>
내 어댑터 코드는 다음과 같습니다
@Override
public View newView(Context context, Cursor cursor, ViewGroup viewGroup) {
return LayoutInflater.from(context).inflate(R.layout.places_list_item, viewGroup, false);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
int taskCount = cursor.get...// get to know it...
TextView name = (TextView) view.findViewById(R.id.placeItemName);
name.setText(
cursor.getString(
cursor.getColumnIndexOrThrow(...)));
TextView count = (TextView)view.findViewById(R.id.txtTaskCount);
if(taskCount > 0)
count.setText(Integer.toString(taskCount));
else
count.setVisibility(View.GONE);
}
문제는 무엇 때로는 모든보기입니다 숫자가 숨겨져 있거나 값이 잘못되었습니다 (텍스트 내용은 항상 정확합니다). taskCount
값을 기록합니다. 항상 올바른 값입니다. 문제가 재현되지
//if(taskCount > 0)
count.setText(Integer.toString(taskCount));
//else
//count.setVisibility(View.GONE);
을 :이 같은 if 문을 주석 항상 count
에 텍스트를 할당하면
감사합니다. 작동합니다. – Olegas