0

我有一个名为 Check 的按钮,我希望它在我每次单击它时不可见和可见,因为如果它可见并且我单击它将变得不可见并且诗意!

但是我的代码不起作用!有任何想法吗 ?

 Button Check ;
        @Override   
         public void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);  
           setContentView(R.layout.settings);

        Check  = (Button)findViewById(R.id.checkButton);

           Check.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View View) {



                if (View.getVisibility() == android.view.View.VISIBLE) 
                        View.setVisibility(android.view.View.INVISIBLE);
                        else if (View.getVisibility() == android.view.View.INVISIBLE)
                            View.setVisibility(android.view.View.VISIBLE);

            }
        });

在我的活动中,它一开始是可见的,当我点击它时,它变得不可见,但是当我再次点击它时它保持不可见!

4

2 回答 2

3

将您的代码更改为此,

Check.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                if (v.isShown()) 
                        v.setVisibility(View.INVISIBLE);
                else
                        v.setVisibility(View.VISIBLE);

            }

但我认为问题是,当按钮变得不可见时,你没有得到任何点击事件。首先确保onClick在按钮不可见时调用该方法。

不可见的按钮不会调度任何交互事件。因此,您可以设置透明或空白背景或类似的东西,而不是将按钮的可见性设置为不可见。

但我个人认为,你应该改变你的用例,因为为什么会点击隐形按钮。

于 2013-01-13T07:50:23.163 回答
1

尝试这个:

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="abcd" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:onClick="abc"
        android:text="Button" />
</LinearLayout>



public void abc(View v) {
    v.setVisibility(View.INVISIBLE);
}

public void abcd(View v) {
    v.findViewById(R.id.button1).setVisibility(View.VISIBLE);
}

不可见的项目不会收到点击事件。因此,您可以在不可见视图上接收点击的唯一方法是接收其他视图来代替不可见视图。上述解决方案将按钮包装在布局中,因此当按钮不可见时,单击时会传递给布局,布局会处理事件并相应执行。如果您对此类布局的使用率很高,您还可以使用上述机制创建自定义按钮。

于 2013-01-13T08:03:59.977 回答