在SimpleCursorAdapter View Binder中到达ImageView

时间:2016-08-03 14:36:15

标签: android

首先,我非常擅长在简单的光标适配器中查看活页夹,并猜测我正在做一些导致我问题的傻事。我有这个简单的游标适配器,如下所示,我使用视图绑定器将一些动态效果应用于列表项。现在前两个陈述if如果工作正常。但我无论如何都无法进入imageview。尝试了很多替代方案。

final SimpleCursorAdapter reminders =
            new SimpleCursorAdapter(this, R.layout.detail_row, remindersCursor, from, to);
        setListAdapter(reminders);

    reminders.setViewBinder(new SimpleCursorAdapter.ViewBinder() {

        public boolean setViewValue(View aView, Cursor aCursor, int aColumnIndex) {



            if (aColumnIndex == 1) {
                String get_title = aCursor.getString(aColumnIndex);
                TextView textView = (TextView) aView;
                textView.setText("Country: " + get_title);
                return true;
            }
            if(aView.getId() ==R.id.custom_date ) {
                String get_date = aCursor.getString(aColumnIndex);
                TextView textView1 = (TextView) aView;
                textView1.setText("Time now: " + get_date);


                return true;
            }
            if(aView.getId() == R.id.custom_type){

                String get_type = aCursor.getString(aColumnIndex);
                ImageView imageView = (ImageView) aView.findViewById(R.id.custom_icon);
                if(get_type.matches("ASIA")){
                    Picasso.with(ReminderListActivity.this).load(R.drawable.asia).into(imageView);
                } else if (get_type.matches("ROW")){
                    Picasso.with(ReminderListActivity.this).load(R.drawable.rest).into(imageView);
                }
                return true;
            }


            return false;
        }
    });

同时R.layout.detail_row在下面:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >



    <ImageView

        android:id="@+id/custom_icon"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:background="@drawable/callback" />



            <TextView
                android:layout_marginLeft="5dp"
                android:id="@+id/custom_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="12sp"
                android:text="" />


            <TextView
                android:gravity="center"
                android:id="@+id/custom_date"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="10sp"
                android:text="" />
            <TextView
                android:gravity="center"
                android:id="@+id/custom_type"
                android:layout_gravity="center"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="1sp"
               android:text="TextView" />

1 个答案:

答案 0 :(得分:0)

自己解决了。问题出在我的“to”配置中。我有一个拼写错误。我没有将字段定义为R.id.custom_icon(图像字段),而是错误地调用了比较字段R.id.custom_type。感觉像个白痴。

错误的代码:

final int[] to = new int[]{R.id.custom_title,R.id.custom_date,R.id.custom_type};

更正后的代码:

final int[] to = new int[]{R.id.custom_title,R.id.custom_date,R.id.custom_icon};