2016-04-23 112 views
0

你好傢伙即時通訊新的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在那裏顯示錯誤? –

回答

0

嘗試與更傳統的

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