gpt4 book ai didi

java - Android:为什么要设置可见性(View.GONE);或 setVisibility(View.INVISIBLE);不工作

转载 作者:IT老高 更新时间:2023-10-28 20:31:08 37 4
gpt4 key购买 nike

我希望我的 DatePicker 和按钮在开始时不可见。当我按下我的魔法按钮时,我想 setVisibility(View.Visible);

这里的问题是当我 setVisibility(View.GONE)setVisibility(View.INVISIBLE) 没有任何变化并且组件仍然可见。

final DatePicker dp2 = (DatePicker) findViewById(R.id.datePick2);
final Button btn2 = (Button) findViewById(R.id.btnDate2);

dp2.setVisibility(View.GONE);
dp2.setVisibility(View.INVISIBLE);
btn2.setVisibility(View.GONE);
btn2.setVisibility(View.INVISIBLE);

btn2.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
TextView txt2 = (TextView) findViewById(R.id.txt2);
txt2.setText("You selected " + dp2.getDayOfMonth()
+ "/" + (dp2.getMonth() + 1) + "/" + dp2.getYear());
}
});

最佳答案

我发现很多事情都错了。对于初学者,您没有定义魔术按钮,也没有事件处理程序。

你也不应该使用:

dp2.setVisibility(View.GONE);
dp2.setVisibility(View.INVISIBLE);

只使用两者之一。来自 Android documentation :

View.GONE This view is invisible, and it doesn't take any space for layout purposes.

View.INVISIBLE This view is invisible, but it still takes up space for layout purposes.

在您的示例中,您使用 View.INVISIBLE 覆盖了 View.GONE 分配。


尝试替换:

final DatePicker dp2 = new DatePicker(this)

与:

DatePicker dp2 = (DatePicker) findViewById(R.id.datePick2);  

对于其他小部件也是如此:

    public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);

final DatePicker dp2 = new DatePicker(this);
final Button btn2 = new Button(this);
final Button magicButton = new Button(this);
final TextView txt2 = new TextView(TestActivity.this);

dp2.setVisibility(View.GONE);
btn2.setVisibility(View.GONE);
btn2.setText("set Date");

btn2.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
txt2.setText("You selected "
+ dp2.getDayOfMonth() + "/" + (dp2.getMonth() + 1)
+ "/" + dp2.getYear());
}
});

magicButton.setText("Magic Button");
magicButton.setOnClickListener(new View.OnClickListener()
public void onClick(View arg0) {
dp2.setVisibility(View.VISIBLE);
btn2.setVisibility(View.VISIBLE);
}
});

ll.addView(dp2);
ll.addView(btn2);
ll.addView(magicButton);
ll.addView(txt2);

setContentView(ll);
}

关于java - Android:为什么要设置可见性(View.GONE);或 setVisibility(View.INVISIBLE);不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7348150/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com