查看点击无法识别?

时间:2018-12-06 18:13:29

标签: android

我的按钮单击未被识别。实际上,根本没有点击被识别。

这是我的活动:

public class ShowRecieveActivity extends BaseActivity implements View.OnClickListener {

    @BindView(R.id.copy_button)
    Button button;

    //oncreate and all other methods....

    @Override
    public void onClick(View v) {

        Timber.d("Click detected");
        if(v.getId() == R.id.copy_button){
            Timber.d("Click detected as copy button");
            ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
            ClipData clip = ClipData.newPlainText("Wallet address", wallet.getAddress());
            clipboard.setPrimaryClip(clip);
            Timber.d("Clip set as: "+clipboard.getPrimaryClip().toString());

            showToast("Address copied to clipboard");
        }
    }
}

以某种方式完全无法识别此活动中的点击。 BaseActivity仅实现BottomNavigationView.OnNavigationItemSelectedListener,仅此而已。

这是否以某种方式干扰了view.onclicklistener?不应该吧?可能是什么问题?

如果您需要更多我的代码,请告诉我。

4 个答案:

答案 0 :(得分:2)

对此我不确定,但我认为您没有正确使用黄油刀。

如果您只需要绑定用于单击的按钮,则无需使用$for(tags)$ ... $tags$ ... $endfor$,请使用@BindView

@Onclick(R.id.copy_button)

基于butterknife official website

答案 1 :(得分:1)

您需要将ClickListener附加到您button上,在onCreate方法内Butter.bind(this)之后添加此代码:

button.setOnClickListener(this);

希望这会有所帮助

答案 2 :(得分:1)

您可以通过两种方式执行此操作-
到目前为止的应用方式:

@BindView(R.id.copy_button)
Button button;

//onCreate method
button.setOnClickListener()... and so on...

但是,此方法不能证明您使用Butterknife是合理的,因为您正在使用默认方法来执行此操作,而是替换了onCreate方法中的接线过程。
仅当您要轻松访问元素(例如textview,edittext等)时,此功能才有用。

但是要回答这个问题,您应该使用以下方法:

@OnClick(R.id.click_button) 
public void buttonClick(View view) { 
    Timber.d("Click detected");
    if(v.getId() == R.id.copy_button){
        Timber.d("Click detected as copy button");
        ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
        ClipData clip = ClipData.newPlainText("Wallet address", wallet.getAddress());
        clipboard.setPrimaryClip(clip);
        Timber.d("Clip set as: "+clipboard.getPrimaryClip().toString());

        showToast("Address copied to clipboard");
    }
}

通过这种方法,您正在创建一个链接按钮,该按钮应在触发时监听事件。

答案 3 :(得分:1)

使用黄油刀看起来像这样

ButterKnife.bind(this);

可以真正绑定所有视图(使用视图之前,请确保将其放在onCreate方法上)。