Holen Sie sich die Liste der Kontrollkästchen von recyclerview android

Ich habe die recyclerView mit Bild, Titel und Checkbox bevölkert. Ich habe zwei Probleme.

  1. So wird das Kontrollkästchen aktiviert, wenn die Bildansicht oder das gesamte Recycler-Element angeklickt wird.

  2. So finden Sie den Paketnamen, der bei der Verwendung von Intent.ACTION_PACKAGE_REMOVED deinstalliert wurde
  3. Mit ActionBar Up Navigation in Master / Detail Fragmenten
  4. Facebook SDK für Android werfen ClassNotFound Ausnahme
  5. Volley - Senden einer POST-Anfrage mit JSONArrayRequest
  6. In App-Käufe mit Android Studio kann ich nicht finden, IInAppBillingService
  7. Fehler kompilieren in "Use Facebook Login" SDK
  8. Ich muss zur nächsten Aktivität gehen, indem ich alle ausgecheckten Gegenstände aus dem recyclerview bekomme.

Mein Layout:

<RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="8dp"> <ImageView android:id="@+id/image" android:layout_width="match_parent" android:layout_height="150dp" android:layout_gravity="center_horizontal" android:contentDescription="Interests" android:scaleType="centerCrop" android:src="@drawable/ic_yash_dp" /> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_gravity="bottom" android:layout_margin="5dp" android:layout_marginTop="24dp" android:background="@drawable/rounded_corners" android:gravity="bottom" android:padding="5dp" android:text="GYM" android:textAlignment="center" android:textColor="@color/white" /> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/checkBox" android:layout_margin="2dp" android:layout_alignParentTop="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" /> </RelativeLayout> 

Mein Adapter:

 @Override public void onBindViewHolder(RecyclerViewHolder holder, int position) { final InterestBean model = arrayList.get(position); final int pos = position; RecyclerViewHolder mainHolder = (RecyclerViewHolder) holder;// holder Bitmap image = BitmapFactory.decodeResource(context.getResources(), model.getImage());// This will convert drawbale image into bitmap // setting title mainHolder.title.setText(model.getTitle()); mainHolder.imageview.setImageBitmap(image); mainHolder.checkBox.setChecked(arrayList.get(position).isSelected()); mainHolder.checkBox.setTag(arrayList.get(position)); mainHolder.checkBox.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { CheckBox cb = (CheckBox) v; InterestBean contact = (InterestBean) cb.getTag(); contact.setIsSelected(cb.isChecked()); arrayList.get(pos).setIsSelected(cb.isChecked()); selectedItems.add(pos); Toast.makeText( v.getContext(), pos + cb.isChecked(), Toast.LENGTH_LONG).show(); } });} 

  • Dynamische Höhe von TextView innerhalb eines GridLayout
  • Wie kann ich ein Ergebnis (startActivityForResult) aus einer TabHost-Aktivität zurückgeben?
  • Verwenden von Qt / C ++, um Java-Code über JNI aufzurufen. FindClass findet keine Klasse
  • Aktualisiert eine Benachrichtigung, um den Standby-Status eines Dienstes zu entfernen?
  • Wie kann ich den Google App Engine Endpoints API auf nur meine Android-Anwendungen beschränken?
  • Ermitteln Sie das Android App-Upgrade und legen Sie die Anwendungsklasse boolean für das Anzeigen / Ausblenden von EULA fest
  • 3 Solutions collect form web for “Holen Sie sich die Liste der Kontrollkästchen von recyclerview android”

    Eine einfache Lösung kann sein, dass man OnItemCheckLister erstellen und so ähnlich wie folgt implementieren kann:

     public class MyAdapter extends RecyclerViewAdapter { interface OnItemCheckListener { void onItemCheck(Item item); void onItemUncheck(Item item); } ... @NonNull private OnItemCheckListener onItemCheckListener; public MyAdapter (List<Item> items, @NonNull OnItemCheckListener onItemCheckListener) { this.items = items; this.onItemClick = onItemCheckListener; } ... @Override public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) { if (holder instanceof MyViewHolder) { final Item currentItem = items.get(position); ... ((MyViewHolder) holder).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ((MyViewHolder) holder).checkbox.setChecked( !((MyViewHolder) holder).checkbox.isChecked()); if (((MyViewHolder) holder).checkbox.isChecked()) { onItemClick.onItemCheck(currentItem); } else { onItemClick.onItemUncheck(currentItem); } } }); } } static class MyViewHolder extends RecyclerView.ViewHolder { CheckBox checkbox; View itemView; ... public MyViewHolder(View itemView) { super(itemView); this.itemView = itemView; checkbox = (CheckBox) itemView.findViewById(R.id.checkbox); checkbox.setClickable(false); ... } public void setOnClickListener(View.OnClickListener onClickListener) { itemView.setOnClickListener(onClickListener); } } } 

    Dann können wir das tun:

      private List<Item> currentSelectedItems = new ArrayList<>(); ... myAdapter = new MyAdapter(items, new MyAdapter.OnItemCheckListener() { @Override public void onItemCheck(Item item) { currentSelectedItems.add(item); } @Override public void onItemUncheck(Item item) { currentSelectedItems.remove(item); } }); 

    Dann kannst du mit currentSelectedItems Sachen currentSelectedItems .

    Anmerkung: Da diese Lösung für das gesamte Item gedrückt wird, so dass das Kontrollkästchen nicht geklickt werden soll.

    Sie können die Modellklasse verwenden, um recyclerView geprüfte Elemente zu erhalten. Weitere Referenz: Android Recyclerview Checkbox

    Modell

     public class Model { private boolean isSelected; private String animal; public String getAnimal() { return animal; } public void setAnimal(String animal) { this.animal = animal; } public boolean getSelected() { return isSelected; } public void setSelected(boolean selected) { isSelected = selected; } } 

    Adapter

     import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.CheckBox; import android.widget.TextView; import android.widget.Toast; import java.util.ArrayList; public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.MyViewHolder> { private LayoutInflater inflater; public static ArrayList<Model> imageModelArrayList; private Context ctx; public CustomAdapter(Context ctx, ArrayList<Model> imageModelArrayList) { inflater = LayoutInflater.from(ctx); this.imageModelArrayList = imageModelArrayList; this.ctx = ctx; } @Override public CustomAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = inflater.inflate(R.layout.rv_item, parent, false); MyViewHolder holder = new MyViewHolder(view); return holder; } @Override public void onBindViewHolder(final CustomAdapter.MyViewHolder holder, int position) { holder.checkBox.setText("Checkbox " + position); holder.checkBox.setChecked(imageModelArrayList.get(position).getSelected()); holder.tvAnimal.setText(imageModelArrayList.get(position).getAnimal()); // holder.checkBox.setTag(R.integer.btnplusview, convertView); holder.checkBox.setTag(position); holder.checkBox.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Integer pos = (Integer) holder.checkBox.getTag(); Toast.makeText(ctx, imageModelArrayList.get(pos).getAnimal() + " clicked!", Toast.LENGTH_SHORT).show(); if (imageModelArrayList.get(pos).getSelected()) { imageModelArrayList.get(pos).setSelected(false); } else { imageModelArrayList.get(pos).setSelected(true); } } }); } @Override public int getItemCount() { return imageModelArrayList.size(); } class MyViewHolder extends RecyclerView.ViewHolder { protected CheckBox checkBox; private TextView tvAnimal; public MyViewHolder(View itemView) { super(itemView); checkBox = (CheckBox) itemView.findViewById(R.id.cb); tvAnimal = (TextView) itemView.findViewById(R.id.animal); } } 

    1) Du kannst mainHolder.imageview OnClickListener hinzufügen
    2) Zwei Schritte:

    1. Zu Interesse hinzufügenBean-Modell boolen isChecked
    2. Wo gehen Sie zur nächsten Aktivität, holen Sie alle InterestBeans, holen Sie alle überprüft InterestBeans und speichern Sie es.

    Code:

     mainHolder.imageview.setOnClickListener(new View.OnClickListener() { public void onClick (View v) { mainHolder.checkBox.setChecked(!mainHolder.checkBox.isChecked()); } } ); 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.