如何使点击按钮android上的模拟时钟不可见和可见

时间:2014-03-25 20:02:13

标签: android

我在应用程序中工作,并且当我点击按钮

时想要隐形和可见模拟时钟
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#000000"
android:orientation="vertical" >

<AnalogClock
    android:id="@+id/AnalogClock"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center" />

<Button
    android:id="@+id/show"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="show" />

<Button
    android:id="@+id/hide"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="hide" />

这是我使用但不起作用的代码

      final    AnalogClock clock =(AnalogClock) findViewById(R.id.AnalogClock);
        Button show= (Button) findViewById(R.id.show);
             Button hide= (Button) findViewById(R.id.hide);


          show.setOnClickListener(new View.OnClickListener() {



                @Override
                public void onClick(View v) {

                    clock.setVisibility(View.VISIBLE);
                }

    });
             hide.setOnClickListener(new View.OnClickListener() {



                @Override
                public void onClick(View v) {

                    clock.setVisibility(View.GONE);
                }

    });

我试图点击按钮,但没有任何动作,所以任何人都知道如何使其工作,请....

1 个答案:

答案 0 :(得分:0)

      AnalogClock clock  = (AnalogClock) v; 
      clock.setVisibility(View.GONE);

这是错误的,v是你的按钮,而不是时钟。你需要做的事

clock.setVisibility(View.GONE);

修改 我已经测试了您的代码并且它可以运行:

public class MainActivity extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            final AnalogClock clock = (AnalogClock) findViewById(R.id.AnalogClock);
            Button show = (Button) findViewById(R.id.show);
            Button hide = (Button) findViewById(R.id.hide);

            show.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    clock.setVisibility(View.VISIBLE);
                }
            });
            hide.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    clock.setVisibility(View.INVISIBLE);
                }
            });
        }

    }

布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#000000"
    android:orientation="vertical" >

    <AnalogClock
        android:id="@+id/AnalogClock"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center" />

    <Button
        android:id="@+id/show"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="show" />

    <Button
        android:id="@+id/hide"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="hide" />

</LinearLayout>