2016-10-06 4 views
1

Я работаю с андроидом recyclerview. У меня есть кнопка на каждом элементе. Когда я нажимаю первый раз на кнопку, ничего не происходит, но я дважды нажимаю эту кнопку, это работает. пыльник, это мой код:Кнопка один клик не работает, двойные щелчки работает

}

Пожалуйста, помогите !!!

+0

использование переключатель кейс для этого. –

+0

если коммутатор не работает, инициализируйте OnClickListener анонимно для обеих кнопок ... это определенно сработает – Kushan

ответ

0

попробовать инициализировать каждый onclicklistener анонимно следующим образом:

buttonShare.setOnClickListener(new View.OnClickListener(){ 
    @Override 
    public void onClick(View v) { 
     //do something 

    } 

}); 

buttonSave.setOnClickListener(new View.OnClickListener(){ 
    @Override 
    public void onClick(View v) { 
     //do something else 

    } 

}); 

Если вы хотите, чтобы избежать этого, вы можете попробовать использовать случай переключатель вместо если заявления

0

Попробуйте этот код:

public class NewsViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { 

@BindView(R.id.image_news) 
public ImageView imageNews; 

@BindView(R.id.text_title_news) 
public TextView textTitleNews; 

@BindView(R.id.text_description_news) 
public TextView textDescriptionNews; 

@BindView(R.id.text_time) 
public TextView textTime; 

@BindView(R.id.button_share) 
public Button buttonShare; 

@BindView(R.id.button_save) 
public Button buttonSave; 

public NewsViewHolder(View itemView) { 
    super(itemView); 
    ButterKnife.bind(this, itemView); 
    buttonShare.setOnClickListener(this); 
    buttonSave.setOnClickListener(this); 
} 

@Override 
public void onClick(View v) { 
    switch (v.getId()) { 
     case R.id.button_share: 
      Log.e("clicked", "share"); 
      break; 
     case R.id.button_save: 
      Log.e("clicked", "saved"); 
      break; 
    } 
} 
0

Поскольку вы используете ButterKnife, я бы порекомендовал вам использовать аннотацию ButterKnife для выполнения действий щелчка на кнопке

@OnClick({R.id.button_share, R.id.button_save}) 
public void onClick(View view) { 
    switch (view.getId()) { 
     case R.id.button_share: 
      // Do something 
      break; 
     case R.id.button_save: 
      // Do something 
      break; 
    } 
} 

И использовать переключатель вместо, если для лучшей читаемости.