I have issue on single click Button in Adapter RecyclerView. The click button always more click to get response. But I want to single click, then get respon..
this is my button.
<Button
android:id="@+id/btn_action"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableTop="@drawable/ic_add_white_24dp"
android:theme="@style/Button.Blue" />
and this is my adapter
public class NewsAdapter extends RecyclerView.Adapter<NewsAdapter.ViewHolder> implements View.OnClickListener {
.............
private OnNewsItemClickListener OnNewsItemClickListener;
public void setOnNewsItemClickListener(OnNewsItemClickListener onNewsItemClickListener) {
this.OnNewsItemClickListener = onNewsItemClickListener;
}
public interface OnNewsItemClickListener {
public void onActionClick(View v, int position);
}
public NewsAdapter(Activity activity, ArrayList<HashMap<String, String>> News,
ArrayList<HashMap<String, String[]>> newsArticleImages) {
this.activity = activity;
dataNews = News;
}
@Override
public void onClick(View v) {
final int viewId = v.getId();
if (viewId == R.id.btn_action) {
if (OnNewsItemClickListener != null) {
OnNewsItemClickListener.onActionClick(v, (Integer) v.getTag());
}
}
}
public class ViewHolder extends RecyclerView.ViewHolder {
@Bind(R.id.btn_action)
Button btn_action;
public ViewHolder(View vi) {
super(vi);
ButterKnife.bind(this, vi);
}
}
@Override
public NewsAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.pin_item_news_recyclerview, parent, false);
ViewHolder holder = new ViewHolder(v);
holder.btn_action.setOnClickListener(this);
return holder;
}
public void onBindViewHolder(final ViewHolder holder, int position) {
}
.............
}
this my Activity to call ClickListener
public class BusinessActivity extends AppCompatActivity implements OnRefreshListener, NewsAdapter.OnNewsItemClickListener {
@Bind(R.id.grid_view) RecyclerView list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.business_home);
ButterKnife.bind(this);
adapter = new NewsAdapter(BusinessActivity.this, NewsList,
NewsArticleImagesList);
adapter.setOnNewsItemClickListener(this);
list.setHasFixedSize(true);
list.setAdapter(adapter);
}
@Override
public void onActionClick(View v, int position) {
HashMap<String, String> news = new HashMap<String, String>();
news= adapter.dataNews.get(position);
String btn_des = news.get(Variabel.KEY_BTN_DES);
if(btn_des.equals("Add News")) {
Bundle b = new Bundle();
Intent i;
i = new Intent(BusinessActivity.this, AddNewsActivity.class);
b.putString(Variabel.KEY_BUSINESS_NAME, business_name);
b.putString(Variabel.KEY_INFO_FULL, info_full);
b.putString(Variabel.KEY_SUB_INFO_FULL, sub_info_full);
b.putString(Variabel.KEY_ID_BUSINESS, _idBusiness);
i.putExtras(b);
startActivity(i);
}
}
}
so how to fix it ?