Android Studio 開關按鈕 ToggleButton 教學

ToggleButton是一個開關的按鈕, 
也就是說能藉由點擊切換開啟/關閉。


程式碼

宣告的方式有兩種
示範如下

第一個方法

可以直接在程式碼內宣告ToggleButton
不需要在XML內進行任何宣告



MainActivity.java
package com.example.kai.myapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.ToggleButton;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ToggleButton toggleButton = new ToggleButton(MainActivity.this);
        LinearLayout linearlayout = (LinearLayout) findViewById(R.id.activity_main);
        linearlayout.addView(toggleButton);
    }
}

執行畫面

按下前

按下後


第二個方法

第二個方法執行起來效果一樣,
但基本上第二個方法是必較常使用的
使用第二個方法也比較好管理

直接到activity_main.xml加入ToggleButton即可


activity_main.xml
<ToggleButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
 />


執行畫面

按下前


按下後



大家是不是覺得這開關也太醜了對巴!
沒關西我們可以設定他的外觀

首先需要開關的圖片
這裡先提供給大家使用
大家也可以自己找喜歡的開關圖片

togglebutton_off

開 togglebutton_on

把圖片放置專案中

然後把它做成selector的形式。
在res/Drawable資料夾右鍵新增 Drawable resource file
這裡命名為togglebutton_selector.xml。
下圖紅字部分是剛剛放置圖片的位置



togglebutton_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:drawable="@drawable/togglebotton_on" />
    <item android:state_checked="false" android:drawable="@drawable/togglebotton_off" />
</selector>


在至activity_main.xml加入background
android:background="@drawable/togglebutton_selector"



執行畫面

按下前

按下後

事件


接下來就要教大家如何撰寫開關按鈕事件

開關按鈕事件一樣有兩種方法

第一個方法

首先至activity_main.xml
ToggleButton加入OnClick


activity_main.xml
android:onClick="toggleclick"

加入後按下Alt+Enter
會跳出如下圖

選擇Create'toggleclick(View)'in'MainActivity'

他就會自動創建toggleclick至MainActivity

如下圖

MainActivity.java


第二個方法

通常都會使用第二個方法

首先到activity_main.xml對ToggleButton設定ID

ID取名為toggle_button1(可自行訂義)


activity_main.xml
android:id="@+id/toggle_button1"

在至MainActivity.java設定事件


MainActivity.java
ToggleButton toggleButton = (ToggleButton) findViewById(R.id.toggle_button1);
toggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        Toast.makeText(MainActivity.this, "ToggleButton: " + isChecked, Toast.LENGTH_SHORT).show();    }
});

執行畫面

以上就是簡單的介紹了ToggleButton基本操作了。

留言

這個網誌中的熱門文章

Android Studio 時間文字框 TextClock 教學

Android Studio 清單 ListView 教學

Android Studio 攔截通知欄訊息 看到訊息又不會被標記已讀