12.4 单选按钮

本文详细介绍了Android中RadioButton和RadioGroup组件的基本用法及如何通过监听器响应选择变化。通过示例代码展示了如何创建一组单选按钮并设置水平布局。

o 单选按钮(RadioButton)的基本概念

o RadioGroup与RadioButton

o OnClickListener与OnCheckChangeListener监听器

 

 示例代码:

fragment_main.xml

<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:paddingBottom="@dimen/activity_vertical_margin"

    android:paddingLeft="@dimen/activity_horizontal_margin"

    android:paddingRight="@dimen/activity_horizontal_margin"

    android:paddingTop="@dimen/activity_vertical_margin"

    tools:context="com.pmplife.radiobutton.MainActivity$PlaceholderFragment" >

 

    <RadioGroup

        android:id="@+id/radioGroupId"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:orientation="horizontal">

       

        <RadioButton

            android:id="@+id/femaleButtonId"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="female"/>

       

        <RadioButton

            android:id="@+id/maleButtonId"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="male"/>       

    </RadioGroup>

 

</LinearLayout>

 

 

MainActivity.java

package com.pmplife.radiobutton;

 

import android.support.v7.app.ActionBarActivity;

import android.support.v4.app.Fragment;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.ViewGroup;

import android.widget.RadioButton;

import android.widget.RadioGroup;

import android.widget.RadioGroup.OnCheckedChangeListener;

 

public class MainActivity extends ActionBarActivity {

 

         private RadioGroup radioGroup;

         private RadioButton femaleButton;

         private RadioButton maleButton;

         @Override

         protected void onCreate(Bundle savedInstanceState) {

                   super.onCreate(savedInstanceState);

                   //setContentView(R.layout.activity_main);

                   setContentView(R.layout.fragment_main);

 

                   /*if (savedInstanceState == null) {

                            getSupportFragmentManager().beginTransaction()

                                               .add(R.id.container, new PlaceholderFragment()).commit();

                   }*/

                  

                  

                   //获取代表控制的对象

                   radioGroup = (RadioGroup)findViewById(R.id.radioGroupId);

                   femaleButton = (RadioButton)findViewById(R.id.femaleButtonId);

                   maleButton = (RadioButton)findViewById(R.id.maleButtonId);

                  

                   System.out.println("Test1..."); 

             System.out.println(radioGroup); 

             System.out.println("Test2..."); 

            

             //生成监听器对象

                RadioGroupListener listener = new RadioGroupListener();

                //为控件绑定监听对象

                radioGroup.setOnCheckedChangeListener(listener);

         }

        

         //定义一个类,实现监听器接口

         class RadioGroupListener implements OnCheckedChangeListener{

                   @Override

                   public void onCheckedChanged(RadioGroup group, int checkedId) {

                            System.out.println("Test3..."); 

                            if(checkedId == femaleButton.getId()){

                                     System.out.print("选中了femaleButton");

                            }

                            else if(checkedId == maleButton.getId()){

                                     System.out.print("选中了maleButton");

                            }                         

                   }

         }

 

         @Override

         public boolean onCreateOptionsMenu(Menu menu) {

 

                   // Inflate the menu; this adds items to the action bar if it is present.

                   getMenuInflater().inflate(R.menu.main, menu);

                   return true;

         }

 

         @Override

         public boolean onOptionsItemSelected(MenuItem item) {

                   // Handle action bar item clicks here. The action bar will

                   // automatically handle clicks on the Home/Up button, so long

                   // as you specify a parent activity in AndroidManifest.xml.

                   int id = item.getItemId();

                   if (id == R.id.action_settings) {

                            return true;

                   }

                   return super.onOptionsItemSelected(item);

         }

 

         /**

          * A placeholder fragment containing a simple view.

          */

         public static class PlaceholderFragment extends Fragment {

 

                   public PlaceholderFragment() {

                   }

 

                   @Override

                   public View onCreateView(LayoutInflater inflater, ViewGroup container,

                                     Bundle savedInstanceState) {

                            View rootView = inflater.inflate(R.layout.fragment_main, container,

                                               false);

                            return rootView;

                   }

         }

 

}

 

 

设计一套矿热炉自动上料系统,两台矿热炉,两套上料系统 。 电脑端组态软件用组态王6.55 ,称重传感器一个料仓用4个ZEMIC H8C-C3-1.0t-4B传感器。经过四合一接线盒汇总给巨实衡器的八路称重模块中的一通道。每个料仓对应称重模块的一路,8个料仓对应称重模块的8个通道。再到一个四串口转以太网的服务器的一个串口。串口服务器连接组态王。一个料仓接称重模块的一路。一个炉子8个料仓。称重模块采用标准485mobsRTU。二号炉也是8个料仓对应另外一台8通道的称重模块。型号同上。两个矿热炉用一套西门子300用315 2DP,通过串口服务器透传连接组态王进行MPI通讯。四串口服务器一个串口接一号炉,一个串口接二号炉,一个串口接西门子300PLC上料和卸料通过组态王与PLC300的Q端输出。卸料阀关闭到位和关到位限位连接西门子300的I端。要求上料的实际重量等于设定重量减提前量。达到重量后,手动记录重量。没到设定重量不能记录重量。要求一个弹出窗口来控制一个8路上料,并且每路可以单独选择,选择完成后点执行下料或者取消。一个弹出窗口来手动控制卸料阀打开,要求可单独选择某个卸料阀的打开或者多选。选择完成后再点击确定打开或者取消。一个弹出窗口来手动卸料阀关闭,可单选或者多选。选择完成后再点击确定关闭或者取消。卸料阀一个炉子8个。卸料完成后手动关闭卸料阀。开关卸料阀电机正转为关闭,到关限位电机停止。电机反转为打开。卸料阀开电机反转到开限位电机停止。另外每个路炉号有一个皮带运输手动启停按钮控制。输出给PLCQ端。8个料仓卸料都卸在皮带运输机上。还有一个大倾斜角皮带运输手动启停控制。输出点给PLCQ端。班次分甲乙两个班,一个班12小时,两个班时间可调。要求分别记录日期时间,炉号,操作员,两个矿热炉的班产量,班次,批次,小时产量,日产量,月产量和年产量。用SQL数据库记录。批次产量等于8个料加料卸料一次的总计。小时产量等于一个小时内批次重量相加。要求每个料仓单独累计,8个料仓每批次累计。一个小时内8个料仓的累计为小时产量。班产量等于小时产量加班生产时间,日产量等于两个班产量的总计。月产量等于一个月日产量的总计,年产量等于月产量的总计。 批次等于一个炉号的8个料仓加料卸料一次。批次每个班清零一次。 。 两个矿热炉画面中,上半部为一号炉,下半部为二号炉。皮带运输启停画面在皮带运输机的画面上,有操作员权限。大倾斜角皮带运输启停在大倾斜角皮带运输的画面上。有操作员权限。每个路号的生产统计(手动记录)按钮在画面右边。有操作员权限。实际重量,设定重量和提前量在料仓上显示,修改设定重量和提前量有操作员权限。一号炉只管一号炉的弹出窗口,二号炉只管二号炉的弹出窗口。弹出窗口1,下料启动1-8,可单选和多选。弹出窗口2,卸料阀打开1-8,可单选或者多选。弹出窗口3,卸料阀关闭1-8,可单选或者多选。产量统计,一号炉只管一号炉。二号炉只管二号炉。 权限不用隔离。产量统计可根据炉号单独选择。也可以通过小时产量,日产量,班产量,月产量和年产量来统计一个炉号或者两个炉号的总计产量。 设定重量和提前量还有实际重量在料仓上显示。设定重量和提前量可直接单独控制。单位改Kg. 增加手自动转换。 手动通过旋钮和按钮控制。 自动通过组态王控制。 I0.0二号炉1号上料手动 I0.1二号炉2号上料手动 I0.2二号炉3号上料手动 I0.3二号炉4号上料手动 I0.4二号炉5号上料手动 I0.5二号炉6号上料手动 I0.6二号炉7号上料手动 I0.7二号炉8号上料手动 I1.0一号炉1号卸料开到位 I1.1一号炉1卸料阀关到位 I1.2一号炉2号卸料阀开到位 I1.3一号炉2号卸料阀关到位 I1.4一号炉3号卸料阀开到位。 I1.5一号炉3号卸料阀关到位 I1.6一号炉4号卸料阀开到位 I1.7一号炉4号卸料阀关到位 I2.0一号炉5号卸料阀开到位 I12.1一号炉5号卸料阀关到位 I12.2一号炉6号卸料阀开到位 I12.3一号炉6号卸料阀关到位 I12.4一号炉7号卸料阀开到位 I12.5一号炉7号卸料阀关到位 I12.6一号炉8号卸料阀开到位 I12.7一号炉8号卸料阀关到位。 I3.0二号炉1-号卸料阀开到位 I3.1二号炉1号卸料阀关到位 I3.2二号炉2号卸料阀开到位 I3.3二号炉2卸料阀关到位 I3.4二号炉3号卸料阀开到位 I3.5二号炉3号卸料阀关到位 I3.6二号炉4号卸料阀开到位 I3.7二号炉4号卸料阀关到位 I4.0二号炉5号卸料阀开到位 I4..1二号炉5号卸料阀关到位 I4.2二号炉6号卸料阀开到位 I4.3二号炉6号卸料阀关到位 I4.4二号炉7号卸料阀开到位 I4.5二号炉7号卸料阀关到位 I4.6二号炉8号卸料阀开到位 I4.7二号炉8号卸料阀关到位 Q8.0一号炉1-号卸料阀开 Q8.1一号炉1号卸料阀关 Q8.2一号炉2号卸料阀开 Q8.3一号炉2号卸料阀关 Q8.4一号炉3号卸料阀开 Q8.5一号炉3号卸料阀关 Q8.6一号炉4号卸料阀开 Q8.7一号炉4号卸料阀关 Q9.0一号炉5号卸料阀开 Q9.1一号炉5号卸料阀关 Q9.2一号炉6号卸料阀开 Q9.3一号炉6号卸料阀关 Q9.4一号炉7号卸料阀开 Q9.5一号炉7号卸料阀关 Q9.6一号炉8号卸料阀开 Q9.7一号炉8号卸料阀关 Q10.0二号炉1号卸料阀开 Q10.0二号炉1号卸料阀关 Q10.1二号炉2号卸料阀开 Q10.2二号炉2号卸料阀关 Q10.3二号炉3号卸料阀开 Q10.4二号炉3号卸料阀关 Q10.5二号炉4号卸料阀开 Q10.6二号炉4号卸料阀关 Q11.0二号炉5卸料阀开 Q11.1二号炉5号卸料阀关 Q11.2二号炉6号卸料阀开 Q11.3二号炉6号卸料阀关 Q11.4二号炉7号卸料阀开 Q11.5二号炉7号卸料阀关 Q11.6二号炉8号卸料阀开 Q11.7二号炉8号卸料阀开 Q12.0-7一号炉加料Q Q13.0-7二号炉加料Q I124.0系统自动运行。 I124.1系统手动运行。 I124.2四号皮带运行 I124.3五号皮带运行 I124.4二号振动给料机运行 I124.5三号振动给料机运行 I124.6六号皮带运行 I124.7七号皮带运行 I125.0-7为一号炉上料手动。 Q124.0系统手动运行Q Q124.1四号皮带运行Q Q124.2五号皮带运行Q Q124.3二号振动给料机运行Q Q124.4三号振动给料机运行Q Q124.5六号皮带运行Q Q124.6七号皮带运行Q Q124.7一号炉电铃Q Q125.0二号炉电铃 Q125.1警铃
最新发布
12-10
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值