首页 > 解决方案 > 设置可见性可见但设置启用 false Android XML Java

问题描述

我有一个名为的按钮HideIt

android:id="@+id/HideIt"
android:onClick="HideIt_onClick"

我有另一个名为的按钮HelloWorld

 android:id="@+id/HelloWorld"
 android:onCick="HelloWorld_onClick"

第三个按钮名为VisibleIt

android:id="@+id/VisibleIt"
android:onCick="VisibleIt"

场景是什么?

首先我点击HideIt按钮,所以它的功能将不可见禁用按钮,HelloWorld如下代码:

    public void HideIt_onClick(View v) {
    
Button DisableHide = findViewById(R.id.HelloWorld);
DisableHide.setVisibility(View.GONE);
DisableHide.setEnabled(false);}

然后我单击VisibleIt按钮,因此它的功能将显示按钮HelloWorld不会启用 按钮HelloWorld如下代码所示:

    public void VisibleIt_onClick(View v) {
        
Button VisibleHelloWorld = findViewById(R.id.HelloWorld);
VisibleHelloWorld.setVisibility(View.VISIBLE);}

问题是什么? 问题是当我点击VisibleIt 时,我希望我的HelloWorld按钮设置为Visible but still disabled,但它永远不会设置为 visible 并且它仍然是 hidden

我在文本代码中添加了一行代码,VisibleIt如下所示:

DisableHide.setEnabled(true);}

所以VisibleIt代码如下:

    public void VisibleIt_onClick(View v) {
        
Button VisibleHelloWorld = findViewById(R.id.HelloWorld);
VisibleHelloWorld.setVisibility(View.VISIBLE);
DisableHide.setEnabled(true);}

在这种情况下,当我单击VisibleItButton 时,它会像我想要的那样出现Visible BUT NOT disabled,所以我设置了上面的代码,但我遇到了和以前一样的问题,button仍然是HIDDENsetEnable(false)VisbileItHelloWorld

所以我尝试了private void下面的代码,但仍然存在这个问题:

公共无效VisibleIt_onClick(查看v){

Button VisibleHelloWorld = findViewById(R.id.HelloWorld);
VisibleHelloWorld.setVisibility(View.VISIBLE);
DisableHide.setEnabled(true);
DisableItNow();
}
    private void DisableItNow() {
    Button DisableItPlease = findViewById(R.id.HelloWorld);
    DisableItPlease.setEnabled(false);
    }

我需要该HelloWorld按钮,该按钮已被另一个Java功能禁用消失该功能可见仍被禁用

标签: javaandroidxml

解决方案


也许只需在内部使用 if 语句onClick()来检查可见性,如下所示:

public void VisibleIt_onClick(View v) {
    //Button VisibleHelloWorld = findViewById(R.id.HelloWorld);
    //v is already your button
    if( v.getVisibility() == View.INVISIBLE)
        v.setVisibility(View.VISIBLE);
    else if(v.getVisibility() == View.VISIBLE)
        v.setVisibility(View.INVISIBLE)
    else{;/*the view is View.GONE*/}
}

因此,如果视图(您的按钮)可见,它将可见性设置为View.INVISIBLE,如果不可见则设置为View.VISIBLE.
对于您正在尝试做的事情,更改按钮.setEnabled()属性没有意义。


推荐阅读