How To Get Activity Button Click Listener In Recyclerview.adapter Class
How its possible when user press #button then it will print # on focused EditText of RecyclerView. My code and output is below. Please help me.... I've done everything, but got s
Solution 1:
Declare button as static in your activity.
Example: In ABCActivity:
publicstaticButton btnTest;
@OverridepublicvoidonCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_family_member);
btnTest = (Button)findviewbyid(R.id.btnTest);
}
In Adpter:
ABCActivity.btnTest.setOnClickListener(newView.OnClickListener() {
@OverridepublicvoidonClick(View v) {
}
});
Solution 2:
Make your own click listener.
privatestatic OnItemClickListener listener;
publicinterfaceOnItemClickListener {
voidonItemClick(View itemView, int position);
}
publicvoidsetOnItemClickListener(OnItemClickListener listener) {
YourAdapterClass.listener = listener;
}
// and in constructor of ViewHolder use it.
yourButtonView.setOnClickListener(newView.OnClickListener() {
@OverridepublicvoidonClick(View v) {
if (listener != null) {
listener.onItemClick(itemView, getLayoutPosition());
}
}
});
So that code should be in your RecyclerView adapter. In your activity/fragment you just need to use adapter's method setOnItemClickListener. It's normal practice for your question.
Solution 3:
You should check focus in onBindViewHolder like this:
@OverridepublicvoidonBindViewHolder(MyViewHolder holder, int position) {
ItemModelitemModel= mList.get(position);
holder.editCheckItem.setText(itemModel.getChkText());
if(holder.editCheckItem.hasFocus()) {
// Add your # character to your edit text
holder.editCheckItem.append("#");
}
}
Then, simply notify your adapter:
@OverridepublicvoidonClick(View v) {
if (v.getId() == R.id.btnAt) {
//print @ on focused EditText of RecyclerView item
} elseif (v.getId() == R.id.btnHash) {
//print # on focused EditText of RecyclerView item
myAdapterRecyclerView.notifyDataChanged();
}
}
Post a Comment for "How To Get Activity Button Click Listener In Recyclerview.adapter Class"