2016-11-27 95 views
0

在android studio運行時按鈕開關

我有3個按鈕。我想要一個按鈕在幾秒鐘內激活,另外兩個按鈕不活動,然後隨機按鈕應該激活幾秒鐘。切換時間應逐漸減少。整個過程是2分鐘。

活動按鈕應該獲得一些特定的顏色。

我似乎沒有得到邏輯。如果我得到這個代碼,我會很高興。

我有基本的佈局! MainActivity是默認的! 謝謝。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/activity_main" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.example.android.courtcounter.MainActivity"> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Hello World!" 
    android:layout_marginTop="36dp" 
    android:id="@+id/Score" 
    tools:text="0" 
    android:minHeight="52dp" 
    android:minWidth="52dp" 
    android:textSize="36sp" 
    tools:textStyle="bold" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    tools:textAlignment="center" /> 

<Button 
    android:text="3 Point" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="110dp" 
    android:id="@+id/button" 
    android:layout_below="@+id/textView" 
    android:layout_centerHorizontal="true" 
    android:elevation="14dp" 
    android:background="#ff0000"/> 

<Button 
    android:text="2 Point" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/button2" 
    android:layout_below="@+id/button" 
    android:layout_alignLeft="@+id/button" 
    android:layout_alignStart="@+id/button" 
    android:layout_marginTop="32dp" /> 

<Button 
    android:text="Free Throw" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="27dp" 
    android:id="@+id/button3" 
    android:layout_below="@+id/button2" 
    android:layout_centerHorizontal="true" /> 
</RelativeLayout> 

回答

0

首先,爲了開關按鈕的知名度,你必須寫你自己的「能見度經理」,它通過setVisibility(View.Visible)和setVisibility(View.GONE)開啓和關閉打開按鈕。數據綁定是一個更好的方式,因爲您不需要爲此編寫自己的邏輯。 其次,對於定時間隔使用rxJava庫,它具有生成sibgle事件(Observable.timer(..))和重複事件(Observable.interval())的方法。 這些事件在後臺線程上運行,因此您最終使用.observeOn(AndroidSChedulers.mainThread())。 你應該使用這個庫,因爲它會更簡單,而不是用Handler.postDelayed()方法發明輪子。 根據你的描述,你應該生成周期性事件,比如每秒鐘和總時間。當那個時間超過某個門檻時,你會採取一些行動。