CopyPastor

Detecting plagiarism made easy.

Score: 0.7750651836395264; Reported for: String similarity Open both answers

Possible Plagiarism

Plagiarized on 2018-10-06
by Vishal Sharma

Original Post

Original - Posted on 2016-09-19
by THANN Phearum



            
Present in both answers; Present only in the new answer; Present only in the old answer;

Since you are using RecyclerView, follow this method to implement click event to RecyclerView element.
1. Create a listener interface class.
public interface ItemClickListener { void onClick(View view, int position); }
2. Declare item click listener in the adapter class
ItemClickListener clickListener; 3. Add an onClick listener to the constructor of ViewHolder and define the function inside the Viewholder class. Don't forget to implement

View.OnClickListener public class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{ TextView name,number; View circle; public MyViewHolder(View itemView) { super(itemView); name=(TextView)itemView.findViewById(R.id.txtName); number=(TextView) itemView.findViewById(R.id.txtNumber); circle = itemView.findViewById(R.id.circle); itemView.setOnClickListener(this); } @Override public void onClick(View view) { if (clickListener != null) clickListener.onClick(view, getAdapterPosition()); } }
4. Define click function inside the adapter
public void setClickListener(ItemClickListener itemClickListener) { this.clickListener = itemClickListener; }
5. Implement ItemClickListener on MainActivity
public class MainActivity extends Activity implements ItemClickListener
6. Define onClick() function in MainActivity

public void onClick(View view, int position) { final Contact contact = contactList.get(position); Intent intent = new Intent(MainActivity.this, DetailedActivity.class); intent.putExtra("name",contact.getName()); }
7. Call adapter.Onclick myAdapter.setClickListener(this);

I use Interface as the Callback to handle this case.
First, I create an interface class inside Adapter.
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewHolders> { private List<ItemObject> itemList; private Context context; private ItemClickListener mItemClickListener; public RecyclerViewAdapter(Context context, List<ItemObject> itemList) { this.itemList = itemList; this.context = context; } @Override public RecyclerViewHolders onCreateViewHolder(ViewGroup parent, int viewType) { View layoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_view_list, null); RecyclerViewHolders rcv = new RecyclerViewHolders(layoutView); return rcv; } public void addItemClickListener(ItemClickListener listener) { mItemClickListener = listener; } @Override public void onBindViewHolder(RecyclerViewHolders holder, final int position) { holder.countryName.setText(itemList.get(position).getName()); holder.countryPhoto.setImageResource(itemList.get(position).getPhoto()); holder.countryPhoto.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (mItemClickListener != null) { mItemClickListener.onItemClick(position); } } }); } @Override public int getItemCount() { return this.itemList.size(); } //Define your Interface method here public interface ItemClickListener { void onItemClick(int position); } }

Then, let's the Activity or Fragment implement that Interface and add the listener.
public class MyFragment extends Fragment implements RecyclerViewAdapter.ItemClickListener { private List<ItemObject> mItemList; ... @Override public View onCreateView(final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) { ... //Make sure mItemList not NULL RecyclerViewAdapter adapter = new RecyclerViewAdapter(getContext(), mItemList); //Add Item Click listener adapter.addItemClickListener(this); } @Override public void onItemClick(int position) { Toast.makeText(.getContext(),"Click on item: " + position,Toast.LENGTH_SHORT).show(); } }
Hope this will help!

        
Present in both answers; Present only in the new answer; Present only in the old answer;