import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast; import com.sowsceo.rnadomsows.randomsows.R; import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random; public class NumberActivity extends Activity { private CheckBox checkBoxNumber, checkBoxEnglish, checkBoxCharacter; /**
* 有限的,让用户输入产生随机数的长度
*/
private Button bt_definite;
private EditText et_lengthVariable; /**
* 长度不定,产生随机数
*/
private Produce produce;
private MultipleSelectionButtons multipleChecked;
private Random random; /**
* 传递数字的长度
*/
private int numberLength; /**
* 000: 从左到右算,第一个是数字、第二个是字母,第三个是特殊字符
* <p>
* 0:表示没有选中
* 1:表示选中
* <p>
* 例如:101:在产生随机数据中,数据由数字和特殊字符组成,
* 但是数字或特殊字符的数量不小于1个,不达到总长度
* <p>
* 001:在产生随机数据中,数据全部由字母组成
* <p>
* 总长度:如果要产生9个长度的随机数据,总长度就是9个。
*/
private int[] identifier = {0, 0, 0}; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_number); random = new Random(); //组件的初始化
init(); //给组件提供监控事件
monitor();
} private void monitor() {
checkBoxNumber.setOnCheckedChangeListener(multipleChecked);
checkBoxEnglish.setOnCheckedChangeListener(multipleChecked);
checkBoxCharacter.setOnCheckedChangeListener(multipleChecked); } /**
* 初始化组件、方法、变量
*/
private void init() {
checkBoxNumber = (CheckBox) findViewById(R.id.checkBoxNumber);
checkBoxEnglish = (CheckBox) findViewById(R.id.checkBoxEnglish);
checkBoxCharacter = (CheckBox) findViewById(R.id.checkBoxCharacter);
et_lengthVariable = (EditText) findViewById(R.id.et_lengthVariable);
checkBox_capital = (CheckBox) findViewById(R.id.checkBox_capital);
checkBox_lowercase = (CheckBox) findViewById(R.id.checkBox_lowercase); tv_Display = (TextView) findViewById(R.id.tv_Number); produce = new Produce();
multipleChecked = new MultipleSelectionButtons();
} public class Produce implements View.OnClickListener { int number; String strNumber; StringBuffer sb = new StringBuffer(); @Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.bt_Number6:
numberLength = 6;
break;
case R.id.bt_Number9:
numberLength = 9;
break;
case R.id.bt_Number12:
numberLength = 12;
break;
case R.id.bt_Number15:
numberLength = 15;
break;
case R.id.bt_definite:
String strLength = et_lengthVariable.getText().toString().trim(); if (TextUtils.isEmpty(strLength)) {
Toast.makeText(NumberActivity.this, "输入值不能为空", Toast.LENGTH_SHORT).show();
} else {
numberLength = Integer.parseInt(strLength);
if (numberLength < 1 || numberLength > 50) {
Toast.makeText(NumberActivity.this, "数字的长度只能是从1到50", Toast.LENGTH_SHORT).show();
numberLength = 0;
}
}
break;
} String str = String.valueOf(identifier[0] * 100 + identifier[1] * 10 + identifier[2]); /**
* 由于手机的性能原因,需要限制一次产生的随机数据的大小
*/
for (int i = 0; i < numberLength; i++) {
switch (str) {
case "100":
strNumber = String.valueOf(random.nextInt(10));
break;
case "110": break;
case "101":
break;
case "111":
break;
case "010":
byte b=65;
String s=String.valueOf((char) b);
System.out.println(s);
break;
case "011":
break;
case "001":
break;
case "000":
Toast.makeText(NumberActivity.this, "请最少选择一个", Toast.LENGTH_SHORT).show();
break;
}
sb.append(strNumber);
} tv_Display.setText(sb.append(strNumber));
sb = new StringBuffer("\n");
}
} /**
* identifier[]:数组有三个数,第一位表示 数字,第二位表示 字母,第三位 特殊字符
*
* 多选按钮的监听事件
* CompoundButton compoundButton 判断是哪个多选按钮
* boolean isChecked 多选按钮的
*/
public class MultipleSelectionButtons implements CompoundButton.OnCheckedChangeListener {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
switch (compoundButton.getId()) {
case R.id.checkBoxNumber:
if (isChecked)
identifier[0] = 1;
else
identifier[0] = 0;
break;
case R.id.checkBoxEnglish:
if (isChecked)
identifier[1] = 1;
else
identifier[1] = 0;
break;
case R.id.checkBoxCharacter:
if (isChecked)
identifier[2] = 1;
else
identifier[2] = 0;
break;
}
}
}
}

【风马一族_Android】多选按钮的监控事件的更多相关文章

  1. 【风马一族_Android】Button 按钮之记录

    Button button = new Button(); Button button = (Button)findViewById(R.id.bt_button);//让按钮显示灰色,失效 butt ...

  2. 【风马一族_Android】无线连接|调试Android手机

    原文来自:http://www.cnblogs.com/sows/p/6269396.html   (博客园的)风马一族 侵犯版本,后果自负 2017-01-10 15:03:31 准备阶段 1. 软 ...

  3. 【风马一族_Android】通过菜单的点击,跳转到不同界面

    ---恢复内容开始--- 布局的代码:activity_main.xml <?xml version="1.0" encoding="utf-8"?> ...

  4. 【风马一族_Android】第4章Android常用基本控件

    第4章Android常用基本控件 控件是Android用户界面中的一个个组成元素,在介绍它们之前,读者必须了解所有控件的父类View(视图),它好比一个盛放控件的容器. 4.1View类概述 对于一个 ...

  5. 【风马一族_Android】Android 前端内容1

    Android 前端内容 4.1 View 类概述 4.1.1 关于 View //类型说明 view(视图)指的是用户界面组件的基本构建基块.一个视图占据屏幕上的矩形区域,负责绘图和事件处理.视图是 ...

  6. 【风马一族_Android】Android 前端内容

    Android 前端内容 4.1 View 类概述 4.1.1 关于 View //类型说明 view(视图)指的是用户界面组件的基本构建基块.一个视图占据屏幕上的矩形区域,负责绘图和事件处理.视图是 ...

  7. 【风马一族_Android】造作app的效果图

    一.墨刀 官网:https://modao.cc

  8. 【风马一族_Android】手机与电脑通过adb进行连接

    1:打开电脑的命令行 cmd 2:adb devices 查看与电脑连接的手机或模拟器的名称 3:准备要安装的apk.记住手机的名称 4:adb –s <模拟器名称> install  & ...

  9. 【风马一族_Android】让app上传到Android市场的网站介绍

    豌豆荚  开发者中心 http://open.wandoujia.com/account/info China app http://www.chinaapp.org

随机推荐

  1. 基于jQuery带图标的多级下拉菜单

    之前为大家分享了很多导航菜单.今天我们要来分享一款很不错的jQuery左侧带小图标的多级下拉菜单,菜单是垂直的,每一个菜单项带有一个小图标,看起来非常专业.并且菜单支持无限极下拉,所以对各位Web开发 ...

  2. python脚本初探---新手如何直接编写一个hello world模块即可执行的.py文件

    废话不多说,就讲一下这个背景吧: 事情是这个样子的~ 本着好学的精神,咱就买了本书,学习python结果呢,发现python的教程都是一个样子滴,上来的第一个hello world 都是通过IDLE来 ...

  3. 标准库 - unicode/utf8/utf8.go 解读

    // Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a B ...

  4. ClamAV

    ClamAV 简介以及适用范围 ClamAV是一个在命令行下查毒软件,因为它不将杀毒作为主要功能,默认只能查出您计算机内的病毒,但是无法清除,至多删除文件.ClamAV可以工作很多的平台上,但是有少数 ...

  5. vim 实现 go to definition的功能

    如:go to definition的功能,使用ctags配置步骤:1.创建vim ~/.vimrc2.配置vim属性  set number  filetype plugin indent on  ...

  6. 在centos中创建nginx启动脚本

    1. 建立脚本文件nginxd [root@could]# vi /etc/init.d/nginxd 插入以下内容 #!/bin/bash## chkconfig: - 85 15# descrip ...

  7. How to Use Rsync to Sync New or Changed/Modified Files in Linux

    As a system administrator or Linux power user, you may have probably come across or even on several ...

  8. 【转】windows 如何查看端口占用情况?

    开始--运行--cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PID 之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在任务管理器中选&qu ...

  9. .NET DLL 保护措施应用实例(百度云分享工具)

    最近做了个小工具,将保护措施思路全部应用到了此工具中. 点我下载 “百度分享工具”介绍 大家都知道,在百度云盘中分享文件,只能手工一条条地点击“分享”,如果想分享很多文件,操作会非常辛苦.“百度云分享 ...

  10. SQL数据库开发知识总结:基础篇

    1数据库概述 (1) 用自定义文件格式保存数据的劣势. (2) DBMS(DataBase Management System,数据库管理系统)和数据库,平时谈到”数据库”可能有两种含义:MSSQL ...