ToggleButton和Switch改变布局

来源:互联网 发布:audition for mac 编辑:程序博客网 时间:2024/06/05 00:47

java代码

package com.example.zhang.togglebuttontest;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.widget.CompoundButton;import android.widget.LinearLayout;import android.widget.Switch;import android.widget.ToggleButton;public class MainActivity extends AppCompatActivity {    //创造ToggleButton和Switch的实例toggleButton和switcher    ToggleButton toggleButton;    Switch switcher;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //利用findViewById的方法找到xml文件中的toggleButton和switcher        toggleButton = (ToggleButton) findViewById(R.id.toogleButton);        switcher = (Switch) findViewById(R.id.switcher);        //这里的final和有意思,需要特别注意,因为你这个变量test是onCreate()方法的一个局部变量,        //而在onClick()方法里面的new onClickListener(){}其实是以onClickListener接口为基础        //隐式创建了一个主类的内部类,也就是说new onClickListener(){}中括号内的东西,和oncreate()        //方法的作用域不同。所以如果你要跨作用域使用的话,方法有两种:一种就是你看到的在局部作用域        //内将属性声明为final的,第二种就是把你的方法属性的声明放到方法外作为一个类属性,这个时候由        //于内部类是在主类里边的,所以它可以访问主类的全部属性。        //所以还可以改成这样的,在Switch switcher;后面加上LinearLayout test,然后把        //final LinearLayout test = (LinearLayout) findViewById(R.id.test);的final LinearLayout去掉        final LinearLayout test = (LinearLayout) findViewById(R.id.test);        CompoundButton.OnCheckedChangeListener onCheckedChangeListener = new CompoundButton.OnCheckedChangeListener() {            @Override            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {                if(isChecked){                    test.setOrientation(1);//把LinearLayout设为垂直布局                    toggleButton.setChecked(true);                    switcher.setChecked(true);                }               else{                    test.setOrientation(0);//把LinearLayout设为水平布局                    toggleButton.setChecked(false);                    switcher.setChecked(false);                }            }        };        //为toggleButton和switcher绑定OnCheckedChangeListener        toggleButton.setOnCheckedChangeListener(onCheckedChangeListener);        switcher.setOnCheckedChangeListener(onCheckedChangeListener);    }}

xml代码

<?xml version="1.0" encoding="utf-8"?>    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="match_parent"    android:layout_height="match_parent">    <ToggleButton        android:id="@+id/toogleButton"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:textOff="横向排列"        android:textOn="纵向排列"/>    <Switch        android:id="@+id/switcher"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:textOff="横向排列"        android:textOn="纵向排列"        android:thumb="@drawable/check"        android:checked="true"/>        <!--构造一个LinearLayout,并为其设置id,方便在java代码中操作布局-->    <LinearLayout        android:id="@+id/test"        android:orientation="vertical"        android:layout_width="match_parent"        android:layout_height="match_parent">        <Button            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="测试1"/>        <Button            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="测试2"/>        <Button            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="测试3"/>    </LinearLayout></LinearLayout>

1

0 0
原创粉丝点击