与图像自定义列表视图

问题描述:

你好家伙即时通讯新的Android开发和即时通讯与我的代码有一个未知的错误,我完成了代码,但是当我运行它将我送回“数据提供者”。谁能帮帮我吗?与图像自定义列表视图

我的片段。

import android.os.Bundle; 
import android.support.v4.app.ListFragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ListView; 



public class Places_Fragment extends ListFragment { 
    ListView listView; 
    int[] images ={R.drawable.cake_1,R.drawable.cake_2,R.drawable.cake_3,R.drawable.cake_4,R.drawable.cake_5,R.drawable.cake_6}; 
    String[] places; 
    PlaceAdapter adapter; 


    public static Places_Fragment newInstance() { 
     Places_Fragment fragment = new Places_Fragment(); 
     return fragment; 

    } 

    public Places_Fragment() { 
     // Required empty public constructor 

    } 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     View rootView = inflater.inflate(R.layout.fragment_places_, container, false); 
     listView =(ListView)rootView .findViewById(R.id.listView); 
     places = getResources().getStringArray(R.array.places); 
     int i=0; 
     adapter = new PlaceAdapter(getActivity(),R.layout.row_layout); 
     listView.setAdapter(adapter); 
     for(String item: places) 
     { 
      PlaceDataProvider dataProvider = new PlaceDataProvider(images[i],places[i]); 
      adapter.add(dataProvider); 
      i++; 
     } 
     return rootView; 
    } 
} 

我的自定义适配器。

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; 
import java.util.List; 

/** 
* Created by Bonfire-ADv on 4/23/2016. 
*/ 
public class PlaceAdapter extends ArrayAdapter { 
    List list =new ArrayList(); 

    public PlaceAdapter(Context context, int resource) { 
     super(context, resource); 
    } 
    static class DataHandler 
    { 
     ImageView images; 
     TextView Places; 

    } 

    @Override 
    public void add(Object object) { 
     super.add(object); 
     list.add(object); 
    } 

    @Override 
    public int getCount() { 
     return this.list.size(); 
    } 

    @Override 
    public Object getItem(int position) { 
     return this.list.get(position); 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View row; 
     row = convertView; 
     DataHandler handler; 
     if (convertView== null) 
     { 
      LayoutInflater inflater = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      row = inflater.inflate (R.layout.row_layout, parent, false); 
      handler = new DataHandler(); 
      handler.images = (ImageView) row.findViewById(R.id.image_view); 
      handler.Places = (TextView) row.findViewById(R.id.place_title); 
      row.setTag(handler); 
     } 
     else 
     { 
      handler = (DataHandler) row.getTag(); 
     } 
     PlaceDataProvider dataProvider; 
     dataProvider = (PlaceDataProvider) this.getItem(position); 
     handler.images.setImageResource(dataProvider.getImages()); 
     handler.Places.setText(dataProvider.getPlaces()); 

     return row; 
    } 
} 

我的数据发布表。

package com.selfstudios.cakeplanet; 


public class PlaceDataProvider { 

    private int images; 
    private String places; 

    public PlaceDataProvider(int images,String places) 
    { 
     this.setImages(images); 
     this.setPlaces(places); 
    } 

    public int getImages() { 
     return images; 
    } 

    public void setImages(int images) { 
     this.images = images; 
    } 

    public String getPlaces() { 
     return places; 
    } 

    public void setPlaces(String places) { 
     this.places = places; 
    } 
} 

my frag xml。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.selfstudios.cakeplanet.Places_Fragment"> 

    <!-- TODO: Update blank fragment layout --> 


    <ListView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/listView" 
     android:layout_weight="1" /> 
</LinearLayout> 

我的行xml。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" android:layout_height="80dp"> 

    <ImageView 
     android:layout_width="100dp" 
     android:layout_height="75dp" 
     android:id="@+id/image_view" 
     android:layout_alignParentStart="true" 
     android:layout_alignParentLeft="true" 
     android:paddingStart="2dp" 
     android:paddingLeft="2dp" 
     android:paddingEnd="2dp" 
     android:src="@drawable/cake_1" 
     /> 
    <TextView 
     android:id="@+id/place_title" 
     android:layout_width="175dp" 
     android:layout_height="75dp" 
     android:text="place name" 
     android:gravity="center" 
     android:layout_alignParentTop="false" 
     android:layout_centerHorizontal="true" 
     /> 
    <View 
     android:layout_width="match_parent" 
     android:layout_height="2dp" 
     android:background="@color/colorPrimaryDark" 
     android:layout_alignBottom="@+id/image_view"> 

    </View> 

</RelativeLayout> 
+1

你的问题更换

for(String item: places) 

不清请详细说明你是什么意思时,你说:“这给我发回‘数据提供程序’。 –

+0

错误是我的意思...每当我测试应用程序 –

+0

你需要澄清。“它把我送回'dataprovider'”对我们来说并不意味着什么,该类抛出一个异常?你的IDE在那里显示错误? –

尝试与更传统的

for(int i; i < places.size(); i++