安卓:为什么setVisibility(View.GONE);或setVisibility(View.INVISIBLE);不工作 [英] Android: why setVisibility(View.GONE); or setVisibility(View.INVISIBLE); do not work
问题描述
我希望我的的DatePicker
按钮可以是无形的,在开始时。当我preSS我的魔力按钮,我想setVisibility(View.Visible);
这里的问题是,当我 setVisibility(View.GONE)
或 setVisibility(View.INVISIBLE)
没有什么变化和组分仍然是可见的。
最后的DatePicker DP2 =(DatePicker的)findViewById(R.id.datePick2);
最终按钮BTN2 =(按钮)findViewById(R.id.btnDate2);
dp2.setVisibility(View.GONE);
dp2.setVisibility(View.INVISIBLE);
btn2.setVisibility(View.GONE);
btn2.setVisibility(View.INVISIBLE);
btn2.setOnClickListener(新View.OnClickListener(){
公共无效的onClick(查看为arg0){
TextView的TXT2 =(TextView中)findViewById(R.id.txt2);
txt2.setText(你选择了+ dp2.getDayOfMonth()
+/+(dp2.getMonth()+ 1)+/+ dp2.getYear());
}
});
我看到相当多的东西是错误的。对于初学者,你没有你的魔法按钮定义并没有事件处理程序。
此外,你不应该使用:
dp2.setVisibility(View.GONE);
dp2.setVisibility(View.INVISIBLE);
使用只有一两个。从的Android文档:
View.GONE这种观点是不可见的,并且不承担任何空间 布局的目的。
View.INVISIBLE这种观点是无形的,但它仍然 占用空间布局的目的。
在你的榜样,你是覆盖 View.GONE
分配与 View.INVISIBLE
之一。
尝试更换:
最后的DatePicker DP2 =新的DatePicker(本)
与
的DatePicker DP2 =(DatePicker的)findViewById(R.id.datePick2);
同样,对于其他部件:
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的LinearLayout LL =新的LinearLayout(本);
ll.setOrientation(LinearLayout.VERTICAL);
最后的DatePicker DP2 =新的DatePicker(本);
最终按钮BTN2 =新的按钮(这一点);
最终按钮magicButton =新的按钮(这一点);
最后的TextView TXT2 =新的TextView(TestActivity.this);
dp2.setVisibility(View.GONE);
btn2.setVisibility(View.GONE);
btn2.setText(设定日期);
btn2.setOnClickListener(新View.OnClickListener(){
公共无效的onClick(查看为arg0){
txt2.setText(你选择了
+ dp2.getDayOfMonth()+/+(dp2.getMonth()+1)
+/+ dp2.getYear());
}
});
magicButton.setText(神奇按钮);
magicButton.setOnClickListener(新View.OnClickListener()
公共无效的onClick(查看为arg0){
dp2.setVisibility(View.VISIBLE);
btn2.setVisibility(View.VISIBLE);
}
});
ll.addView(DP2);
ll.addView(BTN2);
ll.addView(magicButton);
ll.addView(TXT2);
的setContentView(Ⅱ);
}
I want my DatePicker
and the button to be invisible in the begining. And when I press my magic button I want to setVisibility(View.Visible);
The problem here is when I setVisibility(View.GONE)
or setVisibility(View.INVISIBLE)
nothing changes and the component is still visible.
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());
}
});
I see quite a few things wrong. For starters, you don't have your magic button defined and there is no event handler for it.
Also you shouldn't use:
dp2.setVisibility(View.GONE);
dp2.setVisibility(View.INVISIBLE);
Use only one the two. From 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.
In your example, you are overriding the View.GONE
assignment with the View.INVISIBLE
one.
Try replacing:
final DatePicker dp2 = new DatePicker(this)
with:
DatePicker dp2 = (DatePicker) findViewById(R.id.datePick2);
Similarly for other widgets:
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);
}
这篇关于安卓:为什么setVisibility(View.GONE);或setVisibility(View.INVISIBLE);不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!