java - 设置可见性可见但设置启用 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);}
问题是什么?
问题是当我点击VisibleI
t 时,我希望我的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);}
在这种情况下,当我单击VisibleIt
Button 时,它会像我想要的那样出现Visible BUT NOT disabled,所以我设置了上面的代码,但我遇到了和以前一样的问题,button仍然是HIDDEN。setEnable(false)
VisbileIt
HelloWorld
所以我尝试了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功能禁用并消失,该功能可见但仍被禁用
解决方案
也许只需在内部使用 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()
属性没有意义。
推荐阅读
- python - Excel 嗅探、正则表达式和子字符串匹配
- c# - 如果字段包含 null 则整个连接结果为 null
- javascript - 在 REACT 中使用 js 和 css 轮播
- openstack - Openstack热环境参数文件默认值无效错误
- mysql - 如何从另一个表中选择没有重复项?
- python - 输入三角形边长和输出三角形类型。不工作
- javascript - 使用 *ngFor 对 Angular Material 中的对象进行分组
- loops - 你将如何在 Rust 中编写与此 C++ 循环等效的内容
- xcode - 如何在 Xcode 中创建新的工作区文件?
- c - C 指针 - 作为数组的结构