Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 带有可点击按钮的图像按钮=";假;仍然可以点击_Android_Onclicklistener_Android Phone Call - Fatal编程技术网

Android 带有可点击按钮的图像按钮=";假;仍然可以点击

Android 带有可点击按钮的图像按钮=";假;仍然可以点击,android,onclicklistener,android-phone-call,Android,Onclicklistener,Android Phone Call,我使用ImageButton拨打电话,但在我点击showPhoneNumberBtn ImageButton之前,它不应被单击 ImageButton showPhoneNumberBtn = root.findViewById(R.id.showPhoneNumberBtn); showPhoneNumberBtn.setOnClickListener(new View.OnClickListener() { @SuppressLint("ResourceAsColor") @

我使用ImageButton拨打电话,但在我点击showPhoneNumberBtn ImageButton之前,它不应被单击

ImageButton showPhoneNumberBtn = root.findViewById(R.id.showPhoneNumberBtn);
showPhoneNumberBtn.setOnClickListener(new View.OnClickListener() {
    @SuppressLint("ResourceAsColor")
    @Override
    public void onClick(View v) {
        TextView phoneNumber = root.findViewById(R.id.phoneNumberText);
        phoneNumber.setText(currentUser.getPhoneNumber());
        ImageButton makeCallBtn = root.findViewById(R.id.makeCallBtn);
        makeCallBtn.setClickable(true);
        Drawable img = getContext().getDrawable(R.drawable.ic_call_black_24dp);
        img.setTint(Color.parseColor("#3CB371"));
        makeCallBtn.setBackground(img);
    }
});

ImageButton makeCallBtn = root.findViewById(R.id.makeCallBtn);
makeCallBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.CALL_PHONE}, 1);
        if (ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED) {
            Intent callIntent = new Intent(Intent.ACTION_CALL);
            callIntent.setData(Uri.parse("tel:" + phoneNumber));
            startActivity(callIntent);
        } else {
            Toast.makeText(getContext(), "You don't assign permission.", Toast.LENGTH_SHORT).show();
        }
    }
});


使用
setOnClickListener
将可单击状态重置为true。您需要立即将其设置为false

从源代码:

public void setOnClickListener(OnClickListener l) {
    if (!isClickable()) {
        setClickable(true);
    }
    getListenerInfo().mOnClickListener = l;
}

可以找到详细的解释。

这是这篇文章中的复制粘贴:@Boken没有诚实地复制粘贴它。我会提到这个帖子。