Herausforderungen RecyclerView in Android L

Ich habe das Spiel mit RecyclerView für ein wenig. Gibt es einen einfachen Weg, um OnClickListener für Elemente in RecyclerView? Ich habe versucht, es umzusetzen in ViewHolder. Das onClick-Ereignis nie ausgelöst.

Und ich habe notifyItemInserted(position) für das hinzufügen von neuen Wert in RecyclerView. Die UI nicht habe automatisch aktualisiert. Benötigt, um pull-up und down zu aktualisieren. Aber wenn ich rufe notifyDatasetChanged(..) ist es ok.

Habe ich angewendet DefaultItemAnimator zu RecyclerView. Aber nicht sehen, jede animation, wenn neue Artikel Hinzugefügt.

Danke im Voraus für jede Idee.

Dies ist das erste Android-L-Komponente, die ich getestet habe und ich bin stucking es.

Hier ist mein Adapter-Klasse:

public class AdapterRecyclerView extends RecyclerView.Adapter<AdapterRecyclerView.MyViewHolder> {

private List<String> arrExperiences;

//Provide a reference to the type of views that you are using - Custom ViewHolder
public class MyViewHolder extends RecyclerView.ViewHolder {

    public TextView tvExperienceTitle;
    public TextView tvExperienceDesc;

    public MyViewHolder(RelativeLayout itemView) {
        super(itemView);
        tvExperienceTitle = (TextView) itemView.findViewById(R.id.tv_experience_title);
        tvExperienceDesc = (TextView) itemView.findViewById(R.id.tv_experience_desc);
    }

}

//Provide a suitable constructor : depending on the kind of dataset.
public AdapterRecyclerView(List<String> arrExperiences){
    this.arrExperiences = arrExperiences;
}

//Create new view : invoke by a Layout Manager
@Override
public AdapterRecyclerView.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    RelativeLayout view = (RelativeLayout) LayoutInflater.from(parent.getContext()).inflate(R.layout.view_item_recycler, parent, false);
    MyViewHolder myViewHolder = new MyViewHolder(view);
    return myViewHolder;
}

@Override
public void onBindViewHolder(AdapterRecyclerView.MyViewHolder viewHolder, int position) {
    //get element from your dataset at this position.
    //replace the content of the view with this element.
    viewHolder.tvExperienceTitle.setText(arrExperiences.get(position));
}

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

public void addExperience(String experience, int position){
    arrExperiences.add(position, experience);
    notifyItemInserted(position);
    //notifyDataSetChanged();
}

public void removeExperience(){
    int index = (int) (Math.random() * arrExperiences.size());
    arrExperiences.remove(index);
    notifyItemRemoved(index);
    //notifyDataSetChanged();
}
}
  • Sie könnten versuchen, gist.github.com/grantland/cd70814fe4ac369e3e92
  • Das ist genau das sagte ich oben. Der Kerl Umsetzung OnClickListener aus ViewHolder. Ich habe es versucht. Aber, onClick-Ereignis nie ausgelöst.
  • Sein code ruft setOnClickListener(). Deins oben gezeigt nicht.
  • Wie haben Sie es geschafft pull to refresh in der RecyclerView?
InformationsquelleAutor Aung Pyae | 2014-07-03
Schreibe einen Kommentar