2016-03-22 16 views
0

Bağdaştırıcıda hata oluştu Uygulama başlatılırken hata oluştu, veri, bağdaştırıcı, bu bağdaştırıcı için satır, oluşturulmuş liste görünümü ve bu bağdaştırıcıyı bunlara göre oluşturdum. Sorunun ne olduğunu ve ne yapmam gerektiğini anlamıyorum. bunu önlemek için yapmak.Bazı Görünüm

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="100dp" 
    android:id="@+id/relativelayoutfootprints" 

    > 

    <ImageView 
     android:layout_marginLeft="30dp" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:id="@+id/iconlistview" 

     android:layout_centerVertical="true" 


     > 
    </ImageView> 
    <TextView 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_toRightOf="@id/iconlistview" 

     android:layout_centerVertical="true" 
     android:layout_marginLeft="10dp" 
android:id="@+id/listview_textview_name" 
     android:textColor="@color/white" 
     android:textSize="18sp" 
     /> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
android:id="@+id/listview_textview_time" 
     android:layout_centerVertical="true" 
     android:layout_marginRight="60dp" 
     android:textSize="20sp" 
     android:textColor="@color/white" 
     > 


    </TextView> 

</RelativeLayout> 

ve Model: Bu adaptör için

import android.content.Context; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.ImageView; 
import android.widget.TextView; 

import java.util.ArrayList; 


public class ListViewAdapter extends ArrayAdapter<Model> { 

    private final Context context; 
    private final ArrayList<Model> modelsArrayList; 

    public ListViewAdapter(Context context, ArrayList<Model> modelsArrayList) { 

     super(context, R.layout.row_listview, modelsArrayList); 

     this.context = context; 
     this.modelsArrayList = modelsArrayList; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 

     // 1. Create inflater 
     LayoutInflater inflater = (LayoutInflater) context 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

     // 2. Get rowView from inflater 

     View rowView = null; 
     if(!modelsArrayList.get(position).isGroupHeader()){ 
      rowView = inflater.inflate(R.layout.row_listview, parent, false); 

      // 3. Get icon,title & counter views from the rowView 
      ImageView imgView = (ImageView) rowView.findViewById(R.id.iconlistview); 
      TextView titleView = (TextView) rowView.findViewById(R.id.listview_textview_name); 
      TextView counterView = (TextView) rowView.findViewById(R.id.listview_textview_time); 

      // 4. Set the text for textView 
      imgView.setImageResource(modelsArrayList.get(position).getIcon()); 
      titleView.setText(modelsArrayList.get(position).getTitle()); 
      counterView.setText(modelsArrayList.get(position).getCounter()); 
     } 
     else{ 
      rowView = inflater.inflate(R.layout.group_header_item, parent, false); 
      TextView titleView = (TextView) rowView.findViewById(R.id.header); 
      titleView.setText(modelsArrayList.get(position).getTitle()); 

     } 

     // 5. retrn rowView 
     return rowView; 
    } 
} 

satır: Ben adaptörü

public class Model{ 



    private int icon; 
    private String title; 
    private String counter; 
    private boolean isGroupHeader = false; 
    private boolean groupHeader = false; 

    public void setIsGroupHeader(boolean isGroupHeader) { 
     this.isGroupHeader = isGroupHeader; 
    } 



    public Model(String title) { 
     this(-1,title,null); 
     isGroupHeader = true; 
    } 
    public Model(int icon, String title, String counter) { 
     super(); 
     this.icon = icon; 
     this.title = title; 
     this.counter = counter; 
    } 

    public int getIcon() { 
     return icon; 
    } 

    public void setIcon(int icon) { 
     this.icon = icon; 
    } 

    public String getTitle() { 
     return title; 
    } 

    public void setTitle(String title) { 
     this.title = title; 
    } 

    public String getCounter() { 
     return counter; 
    } 

    public void setCounter(String counter) { 
     this.counter = counter; 
    } 


    public boolean isGroupHeader() { 
     return groupHeader; 
    } 
} 

ama app başladığımda hata var:

03-22 20:35:39.254 7044-7044/? E/AndroidRuntime: FATAL EXCEPTION: main 
               Process: com.example.myapplication, PID: 7044 
               android.content.res.Resources$NotFoundException: Resource ID #0xffffffff 
                at android.content.res.Resources.getValue(Resources.java:1351) 
                at android.content.res.Resources.getDrawable(Resources.java:804) 
                at android.content.Context.getDrawable(Context.java:458) 
                at android.support.v4.content.ContextCompatApi21.getDrawable(ContextCompatApi21.java:26) 
                at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:321) 
                at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:197) 
                at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:190) 
                at android.support.v7.widget.AppCompatImageHelper.setImageResource(AppCompatImageHelper.java:66) 
                at android.support.v7.widget.AppCompatImageView.setImageResource(AppCompatImageView.java:71) 
                at com.example.myapplication.ListViewAdapter.getView(ListViewAdapter.java:46) 
                at android.widget.AbsListView.obtainView(AbsListView.java:2346) 
                at android.widget.ListView.makeAndAddView(ListView.java:1875) 
                at android.widget.ListView.fillDown(ListView.java:702) 
                at android.widget.ListView.fillFromTop(ListView.java:763) 
                at android.widget.ListView.layoutChildren(ListView.java:1684) 
                at android.widget.AbsListView.onLayout(AbsListView.java:2148) 
                at android.view.View.layout(View.java:16630) 
                at android.view.ViewGroup.layout(ViewGroup.java:5437) 
                at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1079) 
                at android.view.View.layout(View.java:16630) 
                at android.view.ViewGroup.layout(ViewGroup.java:5437) 
                at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1079) 
                at android.view.View.layout(View.java:16630) 
                at android.view.ViewGroup.layout(ViewGroup.java:5437) 
                at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336) 
                at android.widget.FrameLayout.onLayout(FrameLayout.java:273) 
                at android.view.View.layout(View.java:16630) 
                at android.view.ViewGroup.layout(ViewGroup.java:5437) 
                at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336) 
                at android.widget.FrameLayout.onLayout(FrameLayout.java:273) 
                at android.view.View.layout(View.java:16630) 
                at android.view.ViewGroup.layout(ViewGroup.java:5437) 
                at android.support.v7.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:435) 
                at android.view.View.layout(View.java:16630) 
                at android.view.ViewGroup.layout(ViewGroup.java:5437) 
                at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336) 
                at android.widget.FrameLayout.onLayout(FrameLayout.java:273) 
                at android.view.View.layout(View.java:16630) 
                at android.view.ViewGroup.layout(ViewGroup.java:5437) 
                at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743) 
                at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586) 
                at android.widget.LinearLayout.onLayout(LinearLayout.java:1495) 
                at android.view.View.layout(View.java:16630) 
                at android.view.ViewGroup.layout(ViewGroup.java:5437) 
                at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336) 
                at android.widget.FrameLayout.onLayout(FrameLayout.java:273) 
                at com.android.internal.policy.PhoneWindow$DecorView.onLayout(PhoneWindow.java:2678) 
                at android.view.View.layout(View.java:16630) 
                at android.view.ViewGroup.layout(ViewGroup.java:5437) 
                at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2171) 
                at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1931) 
                at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107) 
                at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013) 
                at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) 
                at android.view.Choreographer.doCallbacks(Choreographer.java:670) 
                at android.view.Choreographer.doFrame(Choreographer.java:606) 
                at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844) 
                at android.os.Handler.handleCallback(Handler.java:739) 
                at android.os.Handler.dispatchMessage(Handler.java:95) 
                at android.os.Looper.loop(Looper.java:148) 
                at android.app.ActivityThread.mai 

ana hata

imgView.setImageResource(modelsArrayList.get(position).getIcon()); 

initialize veriler:: çizgide

ListViewRecent = (ListView) v.findViewById(R.id.ListView_Recent); 

     ListViewAdapter adapter = new ListViewAdapter(getActivity(),generateData()); 
ListViewRecent.setAdapter(adapter); 


private ArrayList<Model> generateData(){ 
     ArrayList<Model> models = new ArrayList<Model>(); 
     models.add(new Model("Recent Updates")); 
     models.add(new Model(R.drawable.emilypic,"Menu Item 1","1")); 
     models.add(new Model(R.drawable.emilypic,"Menu Item 2","2")); 
     models.add(new Model(R.drawable.emilypic,"Menu Item 3","12")); 

     return models; 
    } 

cevap

2

Resources$NotFoundException: Resource ID #0xffffffff

modelsArrayList.get(position).getIcon() döndürülür -1 için altıgen ve Yapıcınızda ayarlanan değerdir O.

senin Fragment itibaren

, bu

models.add(new Model("Recent Updates")); 

diyoruz Ve bu

// Are these meant to be one value?? 
private boolean isGroupHeader = false; 
private boolean groupHeader = false; 

public Model(String title) { 
    this(-1,title,null); // this line 
    isGroupHeader = true; 
} 
public Model(int icon, String title, String counter) { 
    super(); 
    this.icon = icon; // this gets a -1 
    this.title = title; 
    this.counter = counter; 
} 
public int getIcon() { 
    return icon; // this is causing the error 
} 
public boolean isGroupHeader() { 
    return groupHeader; // this is always false... 
} 

girer Yani senin sorunun o boolean değeri her zaman false ve -1 çünkü ifadesi her zaman girilirse bu olmasıdır kaynak. Hatanız emilyPic tarihinde değil.

if(!modelsArrayList.get(position).isGroupHeader()){ 
    rowView = inflater.inflate(R.layout.row_listview, parent, false); 
    ImageView imgView = (ImageView) rowView.findViewById(R.id.iconlistview); 

Yalnızca groupHeader boolean değerlerden birini kullanarak düzeltebilirim.

+0

ama modele değişik resim eklemek istermiysem, bir çizim özelliğidir, çekilebilir değil. – Rost

+0

Bunu tamir ettim. "R.drawable" olmalı ve her model için farklı bir simge göstereceğim, sadece yeni model yap (R.drawable.some_other_icon, ...) ' –

+0

Bu gibi bir modeli başlatıyorum ArrayList models = new ArrayList (); models.add (yeni Model (R.drawable.emilypic, "Menü Öğesi 1", "1")); – Rost