2016-08-03 11 views
0

Zunächst bin ich sehr neu, um Bindemittel in einfachen Cursor-Adapter zu sehen und denke, ich mache etwas albern, das mein Problem verursacht. Ich habe diesen einfachen Cursor-Adapter wie unten gezeigt, und ich verwende eine Ansichtsmappe, um einige dynamische Effekte auf die Listenelemente anzuwenden. Jetzt sind die ersten zwei Aussagen von if gut. Aber ich kann die Bildansicht nicht um jeden Preis erreichen. Habe viele Alternativen versucht.Ein ImageView in SimpleCursorAdapter erreichen View Binder

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; 
     } 
    }); 

Inzwischen R.layout.detail_row hat unter:

<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

Bitte fügen Sie den Code, der 'from' einrichtet und' to' im Adapter Konstruktor so können wir sehen, was in diesen Variablen ist . –

+0

danke @krislarson ... es war hier, wo das Problem aufgetreten ist – bharatkumar

Antwort

0

es selbst gelöst. Problem war in meinen "to" -Konfigurationen. Ich habe einen Tippfehler. Anstatt die Felder als R.id.custom_icon (Bildfeld) zu definieren, hatte ich versehentlich das Vergleichsfeld R.id.custom_type aufgerufen. Fühle dich wie ein Idiot.

Falscher Code:

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

Corrected Code:

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