Ich habe eine Recyclerview in meiner MainActivity und ich zeige keine der Elemente in Listenweise durch RecyclerView.Adapter
. hier ist meine recyclerview_list_items.xml
Datei,ausgewählt Bild Schaltfläche ändert ihre Position in RecyclerView beim Scrollen
<?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="wrap_content"
android:orientation="vertical"
android:padding="10dp">
<ImageView
android:id="@+id/person_photo"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:scaleType="centerCrop"
android:src="@drawable/rounded_img" />
<TextView
android:id="@+id/person_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/btnfollow"
android:layout_toRightOf="@+id/person_photo"
android:ellipsize="end"
android:paddingLeft="10dp"
android:paddingRight="4dp"
android:singleLine="true"
android:text="*********"
android:textColor="#303030"
android:textSize="17sp" />
<ImageButton
android:id="@+id/btnfollow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="8dp"
android:layout_marginTop="4dp"
android:background="@drawable/follow_inactive" />
</RelativeLayout>
und hier ist meine Adapter Klassendatei,
public class SuggestionListItemAdapter extends RecyclerView.Adapter<SuggestionListItemAdapter.MyViewHolder> {
private List<MovieData> moviesList;
Context context;
private boolean isButtonClicked = false;
public class MyViewHolder extends RecyclerView.ViewHolder {
public TextView person_name;
ImageView person_photo;
ImageButton person_follow;
public MyViewHolder(View view) {
super(view);
person_photo = (ImageView) view.findViewById(R.id.person_photo);
person_name = (TextView) view.findViewById(R.id.person_name);
person_follow = (ImageButton) view.findViewById(R.id.btnfollow);
}
}
public SuggestionListItemAdapter(Context mContext,List<MovieData> moviesList) {
this.moviesList = moviesList;
this.context=mContext;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.recyclerview_list_items, parent, false);
MyViewHolder viewHolder = new MyViewHolder(v);
return viewHolder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
MovieData movieData = moviesList.get(position);
holder.person_name.setText(movieData.getGenre());
holder.person_photo.setImageResource(movieData.getPhoto());
holder.person_follow.setOnClickListener(clickListener);
holder.person_follow.setTag(holder);
}
View.OnClickListener clickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
if (v.getId() == R.id.btnfollow) {
isButtonClicked = !isButtonClicked; // toggle the boolean flag
v.setBackgroundResource(isButtonClicked ? R.drawable.following_img : R.drawable.follow_inactive);
}
}
};
@Override
public int getItemCount() {
return moviesList.size();
}
}
Ein Klick auf holder.person_follow
Bild-Taste, Bild ziehbar bg entsprechend verändert, was ich will, aber wenn ich die Seite verschiebe Zu dieser Zeit Bild zeichnend bg seine Position automatisch ändern. für Beispiel Wenn ich die Bildschaltfläche pos = 1 wähle, ändert sich nach dem Blättern der Seite die gewählte Knopfposition.
Wow !!! Es funktioniert gut. Vielen Dank @Gaurav – pb123