close
開發Android時,有時候需要按鈕具備開關功能,Android中有一個類別就叫做 ToggleButton,可以直接實現,我的Android版本如下:
Toggle Button 可以直接在 activity_main.xml 中實現,如下:
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <ToggleButton android:id="@+id/toggle" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> |
ToggleButton會有預設的開與關的字樣,如下圖:
如果要改寫預設的文字,可以在 activity_main.xml中改成如下紅字部分:
<ToggleButton
android:textOn="已經打開了"
android:textOff="已經關閉了"
android:id="@+id/toggle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
|
如果有要使用圖片來取代按鈕,就把這兩個屬性改成:
textOn=””
textOff=””
這樣初始化就不會有文字出現。
Java中取用ToggleButton的方式如下,實作CompoundButton.OnCheckedChangeListener可以直接用來判斷ToggleButton的狀態。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import androidx.appcompat.app.AppCompatActivity; | |
import android.os.Bundle; | |
import android.widget.CompoundButton; | |
import android.widget.ToggleButton; | |
public class MainActivity extends AppCompatActivity { | |
ToggleButton toggleButton; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_main); | |
toggleButton = findViewById(R.id.toggle); | |
toggleButton.setOnCheckedChangeListener(new ToggleListener()); | |
} | |
private class ToggleListener implements CompoundButton.OnCheckedChangeListener { | |
@Override | |
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { | |
if(isChecked){ | |
toggleButton.setTextOn("已經開啟了"); | |
}else{ | |
toggleButton.setTextOff("已經關閉了"); | |
} | |
} | |
} | |
} |
打完收工
Reference:
https://stackoverflow.com/questions/11604476/it-is-possible-to-create-a-togglebutton-without-text
文章標籤
全站熱搜