在 android 中单击禁用按钮时如何显示消息?

How to display a message when clicked on disable button in android?

我想在单击禁用按钮时显示 Toast 消息。

   button.setEnable(false);                                                                                

       button.setOnClickListener(new View.OnClickListener()
    {
            @Override
            public void onClick (View v)
            {


                Toast.makeText(SliderDemo.this, "Button Disabled",Toast.LENGTH_LONG).show();        }}

我们可以在同一个按钮上同时使用 Touch 监听器和 Click 监听器吗?

您无法单击禁用的 button.Try 执行此操作,

// if you want to show it as disabled simply change the button background and text color
    button.setActivated(false); 
    button.setBackgroundColor(ContextCompat.getColor(getContext(),R.color.disabled_background_color));
    button.setTextColor(ContextCompat.getColor(getContext(),R.color.disabled_text_color));
    button.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick (View v){
            if(!button.isActivated()){
            Toast.makeText(SliderDemo.this, "Button Disabled",Toast.LENGTH_LONG).show();
            return; 
          }
         //else do your stuff
     }

将此行添加到您的 color.xml

<color name="disabled_background_color">#10181818</color>
<color name="disabled_text_color">#aaa</color>

您可以通过编程方式为按钮设置透明度: button.getBackground().setAlpha(128); //对于 50% transparency.Alpha 范围从 0(完全透明)到 255(完全不透明)。

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
             Toast.makeText(SliderDemo.this, "Button Disabled",Toast.LENGTH_LONG).show();
        }
    });

如果你必须在按钮上执行 2 个操作而不是使用它,因为我禁用了按钮并且仅在单击 SET 按钮时才启用

  button.setOnTouchListener(new View.OnTouchListener()
    {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent)
        {
            Log.i("Touch eventssssss","Inside onTouch");
            if(button.isActivated())
            {
                Toast.makeText(SliderDemo.this, "Your Message On Disabled Button ", Toast.LENGTH_SHORT).show();
                return true;
            }
            else
            {
                Intent intent = new Intent(MainActivity.this,NextActivity.class);
                startActivity(intent);
                return true;
            }

        }
    });