RecyclerView zeigt nach Update von AndroidStudio sporadisch keine Daten mehr an

  • Antworten:0
Julian G.
  • Forum-Beiträge: 21

02.02.2017, 20:01:27 via Website

Hallo zusammen,

wie der Titel schon sagt, zeigt meine App nach einem Update nur noch sporadisch Daten an.
Bis vor dem Update der Entwicklungsumgebung wurde nach dem Klicken auf einen Punkt der gewünschte Inhalt eingeschoben (expandable RecyclerView). Ich habe keine Ahnung, woran es liegen könnte. Ich vermute aber mal, dass es am Adapter liegt, da ja sporadisch Daten angezeigt werden.

Ich hoffe irgendwer hat eine Idee. Ich danke euch schonmal.

import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.util.ArrayList;

public class SatzungAdapter extends RecyclerView.Adapter<SatzungAdapter.ViewHolder> implements View.OnClickListener {
    private ArrayList<String> mDataset;
    private int expandedPosition = -1;
    public String Regeln[] = {HIER STEHEN DIE INHALTE};

    public static class ViewHolder extends RecyclerView.ViewHolder {
        // each data item is just a string in this case
        public TextView txtHeader;
        public TextView txtFooter;
        LinearLayout ExpandArea;
        public TextView txtExpand;

        public ViewHolder(View v) {
            super(v);
            txtHeader = (TextView) v.findViewById(R.id.firstLine);
            ExpandArea = (LinearLayout) itemView.findViewById(R.id.ExpandArea);
            txtExpand = (TextView) v.findViewById(R.id.ExpandTxt);
        }
    }


    // Provide a suitable constructor (depends on the kind of dataset)
    public SatzungAdapter(ArrayList<String> myDataset) {
        mDataset = myDataset;
    }

    // Create new views (invoked by the layout manager)
    @Override
    public SatzungAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
                                                   int viewType) {
        // create a new view
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.satzung_text, parent, false);
        // set the view's size, margins, paddings and layout parameters
        ViewHolder vh = new ViewHolder(v);
        vh.itemView.setOnClickListener(SatzungAdapter.this);
        vh.itemView.setTag(vh);
        return vh;
    }

    // Replace the contents of a view (invoked by the layout manager)
    @Override
    public void onBindViewHolder(SatzungAdapter.ViewHolder holder, int position) {
        // - get element from your dataset at this position
        // - replace the contents of the view with that element
        final String name = mDataset.get(position);
        holder.txtHeader.setText(mDataset.get(position));
        if (position == expandedPosition) {
            holder.ExpandArea.setVisibility(View.VISIBLE);
        } else {
            holder.ExpandArea.setVisibility(View.GONE);
        }

        //holder.txtFooter.setText("Footer: " + mDataset.get(position));

    }

    @Override
    public void onClick(View view) {
        ViewHolder holder = (ViewHolder) view.getTag();
        String theString = mDataset.get(holder.getPosition());

        // Check for an expanded view, collapse if you find one
        if (expandedPosition >= 0) {
            int prev = expandedPosition;
            notifyItemChanged(prev);
        }
        // Set the current position to "expanded"
        expandedPosition = holder.getPosition();
        notifyItemChanged(expandedPosition);
        TextView iv = (TextView) view.findViewById(R.id.ExpandTxt);
        iv.setText(Regeln[expandedPosition]);
    }

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

}

Antworten