视图组件之开关按钮

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.hanqi.test5">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".UIActivity1">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".LongClickActivityActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity android:name=".CalculatorActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".Activity1" />

    </application>

</manifest>

当然每一次都少不了先注册,这个是绝对不能忘的,第二步就是写java代码了

package com.hanqi.test5;

import android.os.Bundle;
import android.support.annotation.IdRes;
import android.support.v7.app.AppCompatActivity;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Switch;
import android.widget.Toast;
import android.widget.ToggleButton;

public class UIActivity1 extends AppCompatActivity {

    ImageView iv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ui1);
        //单选框
        RadioGroup radioGroup = (RadioGroup)findViewById(R.id.rg);

        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) {
                if (checkedId == R.id.rb3) //rb3设定为正确答案
                {
                    Toast.makeText(UIActivity1.this, "选对了", Toast.LENGTH_LONG).show();
                }
                RadioButton rb = (RadioButton) findViewById(checkedId);
                Toast.makeText(UIActivity1.this, rb.getText(), Toast.LENGTH_LONG).show();
            }
        });

        //复选框
        CheckBox cb_st = (CheckBox)findViewById(R.id.cb_st);
        cb_st.setOnCheckedChangeListener(new CBOnCheckedChangListenter() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

            }
        });

        cb_st.setOnCheckedChangeListener(new CBOnCheckedChangListenter());

        CheckBox cb_jc = (CheckBox)findViewById(R.id.cb_jc);
        cb_jc.setOnCheckedChangeListener(new CBOnCheckedChangListenter());

        CheckBox cb_xt = (CheckBox)findViewById(R.id.cb_xt);
        cb_xt.setOnCheckedChangeListener(new CBOnCheckedChangListenter());

        CheckBox cb_xhx = (CheckBox)findViewById(R.id.cb_xhx);
        cb_xhx.setOnCheckedChangeListener(new CBOnCheckedChangListenter());

        iv =(ImageView)findViewById(R.id.iv);

        ToggleButton tob =(ToggleButton)findViewById(R.id.tob);
        tob.setOnCheckedChangeListener(new TOnCheckedChangeListenter());
        Switch sw =(Switch)findViewById(R.id.sw);
        sw.setOnCheckedChangeListener(new TOnCheckedChangeListenter());
    }
    private class TOnCheckedChangeListenter implements CompoundButton.OnCheckedChangeListener{
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (isChecked)
            {
                iv.setImageResource(R.drawable.on);
            }
            else
            {
                iv.setImageResource(R.drawable.off);
            }
        }
    }

    private class CBOnCheckedChangListenter implements CompoundButton.OnCheckedChangeListener
    {
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        CheckBox cb = (CheckBox)buttonView;

        if (isChecked) {
            Toast.makeText(UIActivity1.this, "选中了" + cb.getText(), Toast.LENGTH_LONG).show();
        }
        else
        {
            Toast.makeText(UIActivity1.this, "取消了" + cb.getText(), Toast.LENGTH_LONG).show();
        }
    }
    }
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="10dp"
    android:orientation="vertical"
    tools:context="com.hanqi.test5.UIActivity1">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="请选择Android的开发语言是什么?"/>

    <RadioGroup
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:id="@+id/rg">

        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="C++"
            android:id="@+id/rb1"
            android:layout_marginRight="30dp"
            android:checked="true"/>
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="C"
            android:id="@+id/rb2"
            android:layout_marginRight="30dp"/>
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="JAVA"
            android:id="@+id/rb3"
            android:layout_marginRight="30dp"/>
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="C#"
            android:id="@+id/rb4" />
    </RadioGroup>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="请选择字体效果"/>

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="宋体"
        android:id="@+id/cb_st"
        android:checked="true"/>
    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="加粗"
        android:id="@+id/cb_jc" />
    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="斜体"
        android:id="@+id/cb_xt" />
    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="下划线"
        android:id="@+id/cb_xhx" />
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/off"
        android:id="@+id/iv"/>
    <ToggleButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textOn="打开"
        android:textOff="关闭"
        android:id="@+id/tob"/>
    <Switch
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="开关"
        android:textOff="关"
        android:textOn="开"
        android:id="@+id/sw"/>
    <ToggleButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textOn=""
        android:textOff=""
        android:background="@drawable/mybutton"
        android:id="@+id/tob1"/>

</LinearLayout>

特别注意,怎么能让按钮不显示字体,用两张背景图来显示效果呢?这就要用到一段xml代码了,********  这一段代码的名字一定要全部小写

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

 实现效果:

时间: 2024-08-06 14:35:19

视图组件之开关按钮的相关文章

Android课程---视图组件之开关按钮

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hanqi.test5"> <application android:allowBackup="true" android:icon=&q

7. Laravel5学习笔记:如何定义自己的视图组件

视图组件 视图组件就是在视图被渲染前,会调用的闭包或类方法.如果你想在每次渲染某些视图时绑定数据,视图组件可以把这样的程序逻辑组织在同一个地方. 对上面的话,理解如下: 这个php代码运行的时间是在渲染视图之前 使用这个组件应该用于每次渲染时,都要绑定数据的视图上.这样子就可以从控制器分离出数据绑定逻辑. 它很好的提现了 单一职责 ,对它的概念阐述 请看这里 使用 在laravel5的文档中已经说明了如何构建自己的视图组件.这里在重复一下. 先构建一个视图组件: <?php namespace

2.1安卓视图组件

1视图组件与容器组件 1)绝大部分安卓UI组件都存放与android.widget包及其子包,android.view及其子包 2)安卓所有 UI组件都继承自View类 3)View类有一个非常重要的子类:ViewGroup,但是ViewGroup经常作为其他组件的容器使用,安卓采用组合器模式设计View和ViewGroup VIewGroup可以当作View使用,但一般都是作为容器使用;但是ViewGroup是抽象类 实际都是用他的子类,如各种布局管理器 /** * <p> * A <

QT开发(八)——QT单元视图组件

QT开发(八)--QT单元视图组件 QT中有四种单元视图组件,分别为列表视图QListView.树形视图QTreeView.表格视图QTableView.列视图QColumnView. 一.QListView列表视图 1.QListView组件简介 QListView列表视图,继承自QAbstractItemView.QListView是基于模型的列表/图标视图,不显示表头和表框,为Qt的模型/视图结构提供了更灵活的方式. 2.QListView组件属性 QListView组件属性设置: A.n

Android系列 -- 2、视图组件View

1.视图组件View android 绝大部分的UI组件都放在android.widget包以及其子包.android.view包以及其子包中,android应用所有组件都继承了View类 View有一个非常重要的类:ViewGroup,但ViewGroup通常作为其他组件的容器使用

视图组件

视图组件 作者: Rick Anderson翻译: 娄宇(Lyrics)校对: 高嵩 章节: 介绍视图组件 创建视图组件 调用视图组件 演练:创建一个简单的视图组件 附加的资源 查看或下载示例代码 介绍视图组件 视图组件是 ASP.NET Core MVC 中的新特性,与局部视图相似,但是它们更加的强大.视图组件不使用模型绑定,只取决于调用它时所提供的数据.视图组件有以下特点: 渲染一个块,而不是整个响应 在控制器和视图之间同样包含了关注点分离和可测试性带来的好处 可以拥有参数和业务逻辑 通常从

用 php 实现一个视图组件和模板引擎——基础

只要不是做后端接口开发和一些作为守护进程之类的服务器脚本,大多数时候都是在和浏览器打交道,因此合理组织并展现 html 标签是最为常见的工作.一般大家使用框架时,都会自带有一套视图组件和模板引擎. 我们不讨论这些组件和引擎的好坏.因为这些东西已经经过考验,可以在生产环境下使用.我们现在只是为了学习一些东西,这时候了解一些原理上的可能对以后的帮助更大,如果一些人真的很有时间,利用这些基础知识完全可以写一个自己的组件,即可当做练习,也可以拿去自用. 好了,说这么多,我还是希望很多人明白,视图和模板引

Box(视图组件)如何在多个页面不同视觉规范下的复用

本文来自 网易云社区 . 问题描述 Android App中的页面元素,都是由一个个Box(可以理解成一个个自定义View组件和Widget同级)组成,这些Box可以在不同的页面.不同的模块达到复用的效果.但是,现在遇到了一个对于开发复用棘手的问题, A页面的组件间距和B页面的组件间距可能不同. A页面的Box1与Box1间距,和Box1与Box2的间距不一样. Box和Box之间的分割线,有粗有细,有的有左边距. 等等还有许多需要动态调整的地方. 然后做这些Box组件,就是为了复用它们,但现在

ASP.NET Core Razor 视图组件

视图组件简介 在新的ASP.NET Core MVC中,视图组件类似于局部视图,但它们更强大.视图组件不使用模型绑定,仅依赖于您在调用时提供的数据. 视图组件特性: 呈现页面响应的某一部分而不是整个响应 包括在控制器和视图之间发现的关注分离和可测试性优势 可以具有参数和业务逻辑 通常在页面布局中调用 视图组件是在任何地方可重用的呈现逻辑,对于局部视图来说相对复杂,例如: 动态导航菜单 标签云(查询数据库) 登录面板 购物车 最近发表的文章 典型博客上的侧边栏内容 将在每个页面上呈现的登录面板,并