2016-08-03 9 views
0

まず最初に、単純なカーソルアダプターでバインダーを表示し、私の問題を引き起こしている何かばかげたことをやっていると思います。私はこの単純なカーソルアダプタを以下に示すように持っており、ビューバインダを使っていくつかの動的効果をリストアイテムに適用しています。 ifの最初の2つのステートメントはうまく動作します。しかし、私はどんな費用でもイメージビューに到達することができません。代替案をたくさん試しました。SimpleCursorAdapterビューバインダーで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" /> 

+0

我々はそれらの変数であるかを見ることができるように、アダプタのコンストラクタで 'from'と' to'をセットアップするコードを追加してください。 。 –

+0

ありがとう@krislarson ...ここに問題が発生した – bharatkumar

答えて

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}; 
関連する問題