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>
我希望有人知道這個解決方案
謝謝!
阿恩·德啤酒
所以你跟你的ArrayList對象@Arne德啤酒 – antroid
的問題是,它不停地補充相同的項目所做的不是去下一個項目是什麼改變。 –