Android学习03

Posted 小橘猫的更博日记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android学习03相关的知识,希望对你有一定的参考价值。

ToggleButton和Switch

状态开关ToggleButton与开关switch也是由button按钮派生出来的,因此他们的本质也是按钮,button支持的各种属性,方法toggleButton和switch也适用。

ToggleButton常用的属性:

android:textOff:按钮关闭时显示的文本;
android:textOn:按钮开启时显示的文本;

Switch也用于开关按钮。Switch和ToggleButton稍有区别:ToggleButton是按下弹起的开关,而Switch是左右滑动的开关。

开关监听为:setOnCheckedChangeListener,覆写onCheckedChanged(CompoundButton buttonView, boolean isChecked)方法,其中isChecked表示是否选中。

layout文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ToggleButton
        android:id="@+id/tbtn_open"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textOn="开"
        android:textOff="关"
        android:checked="true"/>

    <Switch
        android:id="@+id/sw"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tbtn_open"
        android:layout_marginTop="20dp"
        android:checked="true"/>

</RelativeLayout>

Activity

public class ToggleButtonActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener{

    private ToggleButton mBtnopen;
    private Switch mBtnsw;

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

        mBtnopen = findViewById(R.id.tbtn_open);
        mBtnsw = findViewById(R.id.sw);
        mBtnopen.setOnCheckedChangeListener(this);
        mBtnsw.setOnCheckedChangeListener(this);

    }


    @Override
    public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
        switch (compoundButton.getId()){
            case R.id.tbtn_open:
                if(compoundButton.isChecked()) Toast.makeText(this,"开",Toast.LENGTH_SHORT).show();
                else Toast.makeText(this,"关",Toast.LENGTH_SHORT).show();
                break;
            case R.id.sw:
                if(compoundButton.isChecked()) Toast.makeText(this,"开关:ON",Toast.LENGTH_SHORT).show();
                else Toast.makeText(this,"开关:OFF",Toast.LENGTH_SHORT).show();
                break;

        }
    }
}

效果图

    

 

     

 

以上是关于Android学习03的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Android片段管理器传递变量[重复]

Android底部导航片段问题

如何从Android中的片段单击按钮打开片段

自动刷新android片段,直到满足条件

使用 ActionBar 旋转 Android 的双片段

如何在android studio中用另一个片段替换一个片段