2016-10-06 10 views
1

私はアンドロイドリサイクルビューで働いています。私は各項目にボタンを持っています。初めてボタンをクリックすると何も起きませんが、このボタンをダブルクリックすると動作します。 ベローが、これは私のコードです:シングルクリックが機能しない、ダブルクリックが機能する

}

助けてください!

+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; 
    } 
} 

また、読みやすくするために、ifではなくswitchを使用してください。

関連する問題