2016-06-12 136 views
0

我用3個片段選項卡式佈局工作。起初,我用的是ListView控件,然後轉移到RecyclerView的片段之一,以測試它是否在工作。當它似乎是工作,我複製的第一個片段的適配器,另2和他們改名等等。但是現在看來,他們只顯示多次的最後一個項目。我認爲它與適配器有關,所以我會發布適配器代碼beneeth。RecyclerViewAdapter只顯示最後一個項目

第i個適配器的代碼(CijfersRecyclerViewAdapter.java):

package com.bettersomtoday.arnedebeer.somtoday; 

import android.content.Context; 
import android.support.v7.widget.RecyclerView; 
import android.util.Log; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.TextView; 

import java.util.ArrayList; 
import java.util.HashMap; 

public class CijfersRecyclerViewAdapter extends RecyclerView.Adapter<CijfersRecyclerViewAdapter.ListItemViewHolder> { 

    ArrayList<HashMap<String, String>> list = new ArrayList<>(); 

    //private static final String TAG_DATA = "data"; 
    private static final String TAG_VAK = "vak"; 
    private static final String TAG_BESCHRIJVING = "beschrijving"; 
    //private static final String TAG_WEGING = "weging"; 
    private static final String TAG_CIJFER = "resultaat"; 
    //private static final String TAG_DATUM = "datum"; 
    //private static final String TAG_VOLDOENDE = "voldoende"; 
    private static final String TAG_GEEN_CIJFERS = "geencijfers"; 

    private Context mContext; 


    public CijfersRecyclerViewAdapter(Context context, ArrayList<HashMap<String, String>> list) { 
     this.list = list; 
     this.mContext = context; 
    } 

    @Override 
    public ListItemViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { 
     View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.cijfer_row_item, viewGroup, false); 

     ListItemViewHolder holder = new ListItemViewHolder(v); 
     return holder; 
    } 

    @Override 
    public void onBindViewHolder(ListItemViewHolder viewHolder, int i) { 
     HashMap<String, String> e = list.get(i); 

     viewHolder.cijfer.setText(e.get(TAG_CIJFER)); 
     viewHolder.beschrijving.setText(e.get(TAG_BESCHRIJVING)); 
     viewHolder.vak.setText(e.get(TAG_VAK)); 
     viewHolder.geenCijfers.setText(e.get(TAG_GEEN_CIJFERS)); 
    } 

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

    class ListItemViewHolder extends RecyclerView.ViewHolder { 
     TextView cijfer; 
     TextView beschrijving; 
     TextView vak; 
     TextView geenCijfers; 

     public ListItemViewHolder(View itemView) { 
      super(itemView); 
      cijfer = (TextView) itemView.findViewById(R.id.cijfer); 
      beschrijving = (TextView) itemView.findViewById(R.id.cijferBeschrijving); 
      vak = (TextView) itemView.findViewById(R.id.vak); 
      geenCijfers = (TextView) itemView.findViewById(R.id.geenCijfersText); 
     } 
    } 
} 

佈局(cijfer_row_item.xml):

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="?android:attr/listPreferredItemHeight" 
    android:padding="6dip" > 

    <TextView 
     android:id="@+id/cijfer" 
     android:layout_width="55sp" 
     android:layout_height="55sp" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginEnd="6dip" 
     android:gravity="center" 
     android:singleLine="true" 
     android:text="0.0" 
     android:textSize="26sp" /> 

    <TextView 
     android:id="@+id/cijferBeschrijving" 
     android:layout_width="fill_parent" 
     android:layout_height="26dip" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentEnd="true" 
     android:layout_toEndOf="@id/cijfer" 
     android:ellipsize="marquee" 
     android:singleLine="true" 
     android:text="Beschrijving" 
     android:textSize="18sp" /> 

    <TextView 
     android:id="@+id/vak" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_above="@id/cijferBeschrijving" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentTop="true" 
     android:layout_alignWithParentIfMissing="true" 
     android:layout_toEndOf="@id/cijfer" 
     android:gravity="center_vertical" 
     android:text="Vak" 
     android:textSize="20sp" /> 

    <TextView 
     android:id="@+id/geenCijfersText" 
     android:layout_width="match_parent" 
     android:layout_height="55sp" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginEnd="6dip" 
     android:gravity="center" 
     android:singleLine="true" 
     android:text="" 
     android:textSize="26sp" /> 

</RelativeLayout> 

片段佈局:(fragment_cijfers.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" 
    android:background="#ffffff" 
    android:orientation="vertical" 
    tools:context=".Cijfers"> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/cijfersList" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 

</LinearLayout> 

Screenshow of the problem

我希望有人知道這個解決方案

謝謝!

阿恩·德啤酒

回答

0

顯然我的適配器就沒事了,問題是,我充滿了ArrayList中。

+0

所以你跟你的ArrayList對象@Arne德啤酒 – antroid

+0

的問題是,它不停地補充相同的項目所做的不是去下一個項目是什麼改變。 –