私はプログレスバーを持っているカスタムリストビューを作成しました。リストビューの各項目のプログレスバー値をデータベース値から設定します
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/relativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/selektor"
android:paddingTop="20dp"
android:paddingBottom="20dp"
android:paddingLeft="10dp">
<TextView
android:id = "@+id/l_cat"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_weight = "1"
android:text = "NAME"
android:textAppearance="@style/TextAppearance.AppCompat.Display1"
android:textSize="20sp" />
<ProgressBar
style="@style/CustomProgressBarHorizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/progressBar4"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:layout_marginTop="5dp" />
</RelativeLayout>
私はプログレスバーの最大値を設定し、ViewBinderを使用して進行状況をプログレスバーにしたいので、私はこれでした:SimpleCursorAdapterため
private class CustomViewBinder implements SimpleCursorAdapter.ViewBinder{
@Override
public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
if(view.getId()==R.id.progressBar4)
{
ProgressBar progress = (ProgressBar) view;
progress.setMax(cursor.getColumnIndex("MAX"));
progress.setProgress(cursor.getColumnIndex("PROGRESS"));
return true;
}
return false;
}
}
とコードを:
String[] from = new String[] {category.KEY_NAME};
int[] to = new int[] {R.id.l_category};
adapter = new SimpleCursorAdapter(this,R.layout.customListView,cursor,from,to,0);
adapter.setViewBinder(new CustomViewBinder());
listCategories.setAdapter(adapter);
このコードの何が問題になっています?プログレスバーの値は設定されません。
一つだけが 'TextView'がアダプタ – pskink