本文介绍了安卓:为什么setVisibility(View.GONE);或setVisibility(View.INVISIBLE);不工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时删除!!

我希望我的的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);
 

使用只有一两个。从的Andr​​oid文档

在你的榜样,你是覆盖 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:

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);不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

1403页,肝出来的..

09-06 09:52