控件:RadioButton CheckedBox RatingBar ProgressBar
下拉列表:ListView Spinner
1 <!-- 单选按钮必须放在单选按钮组当中才能生效 ,并且需要为每一个控件指定id 2 (html:<input name="sex"/>男 <input name="sex"/>女) 3 --> 4 <RadioGroup 5 android:id="@+id/rg" 6 android:layout_width="wrap_content" 7 android:layout_height="wrap_content" 8 > 9 <RadioButton 10 android:id="@+id/rb_man" 11 android:layout_width="wrap_content" 12 android:layout_height="wrap_content" 13 android:text="男" 14 /> 15 <RadioButton 16 android:id="@+id/rb_woman" 17 android:layout_width="wrap_content" 18 android:layout_height="wrap_content" 19 android:text="女" 20 android:checked="true" 21 /> 22 </RadioGroup> 23 24 <!-- 增加复选框控件 --> 25 <CheckBox 26 android:id="@+id/cb1" 27 android:layout_width="wrap_content" 28 android:layout_height="wrap_content" 29 android:text="看NBA" 30 /> 31 32 <CheckBox 33 android:id="@+id/cb2" 34 android:layout_width="wrap_content" 35 android:layout_height="wrap_content" 36 android:text="逛街" 37 android:checked="true" 38 /> 39 <CheckBox 40 android:id="@+id/cb3" 41 android:layout_width="wrap_content" 42 android:layout_height="wrap_content" 43 android:text="睡觉" 44 /> 45 <!-- 增加RadtingBar 46 numStars:当前有几个RatingBar 47 rating:当前默认选中几个RatingBar 48 --> 49 <RatingBar 50 android:id="@+id/rbar" 51 android:layout_width="wrap_content" 52 android:layout_height="wrap_content" 53 android:numStars="5" 54 android:rating="3" 55 android:stepSize="1" 56 />
1 /** 2 * 单选按钮和监听 3 * 复选框和监听 4 * RatingBar和监听 5 */ 6 7 //在处理单选按钮监听的时候不需要分别去处理每一个控件 8 //只需要处理当前控件所在的组. 9 //【打印输出最好是不要使用纯数字打印】 10 //邮件服务器和客户端 11 //常量值 12 rg.setOnCheckedChangeListener(new OnCheckedChangeListener() { 13 public void onCheckedChanged(RadioGroup group, int checkedId) { 14 //System.out.println("checkId:"+checkedId); 15 if(checkedId == R.id.rb_man){ 16 //选择是男 17 //往界面上输出打印男 18 //参数1:当前对象 19 //参数2:输入的内容 20 //参数3:显示的时间 21 Toast.makeText(MainActivity.this, "男", Toast.LENGTH_LONG).show(); 22 }else if(R.id.rb_woman == checkedId){ 23 //选择是女 24 Toast.makeText(MainActivity.this, "女", Toast.LENGTH_SHORT).show(); 25 } 26 } 27 }); 28 29 //监听多选按钮(实现接口的监听的时候需要在前面加上CompoundButton) 30 cb1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 31 @Override 32 public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 33 if(isChecked){ 34 Toast.makeText(MainActivity.this, "看NBA", 1).show(); 35 } 36 } 37 }); 38 39 //监听rbar给出评分 40 rbar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() { 41 @Override 42 public void onRatingChanged(RatingBar ratingBar, float rating, 43 boolean fromUser) { 44 if(fromUser){ 45 //System.out.println("rating:------->"+rating); 46 //switch:byte short char int enum String(JDK>=7.0) 47 if(1==rating){ 48 Toast.makeText(MainActivity.this, "不好吃", 1).show(); 49 }else if(3 == rating){ 50 Toast.makeText(MainActivity.this, "还可以", 1).show(); 51 }else if(5 == rating){ 52 Toast.makeText(MainActivity.this, "美味", 1).show(); 53 } 54 } 55 } 56 });
Spinner
1 mySpinner=(Spinner) findViewById(R.id.mySpinner); 2 3 //数组存放TextView里面的行的数据 4 List<String> list=new ArrayList<String>(); 5 list.add("向云鹏"); 6 list.add("汪伟"); 7 list.add("朱攀"); 8 list.add("杨洋"); 9 10 //利用适配器(三个视频)将下拉列表和视图发生关系 11 ArrayAdapter<String> adapter= 12 new ArrayAdapter<String>(MainActivity.this, R.layout.items, R.id.tv, list); 13 14 //将适配器装到下拉列表中 15 mySpinner.setAdapter(adapter); 16 //设置标题 17 mySpinner.setPrompt("武汉科技大学人才榜"); 18 19 //监听Spinner 20 mySpinner.setOnItemSelectedListener(new OnItemSelectedListener() { 21 @Override 22 public void onItemSelected(AdapterView<?> parent, View view, 23 int position, long id) { 24 String item=parent.getItemAtPosition(position).toString(); 25 System.out.println("选择的是:---------->"+item); 26 } 27 28 @Override 29 public void onNothingSelected(AdapterView<?> parent) { 30 System.out.println("没有选择"); 31 } 32 });
广播机制:
1.自定义
a.程序中注册广播
b.菜单中注册广播
2.系统广播(充电,开机)
系统广播(服务Service)
自定义:
例:菜单中注册广播
1 /** 2 * 在菜单中进行广播的注册(eg:发送一个广播有一个接受者可以收到,另外一个收不到) 3 * 先注册--->发送广播-->接受 4 */ 5 6 //发送广播 7 Intent in=new Intent(); 8 //增加广播信息的区分 9 in.setAction(Intent.ACTION_EDIT); 10 //发送广播 11 sendBroadcast(in);
//普通类 --变成--> 接受者
//1.继承BroadCastReceiver
//2.实现里面OnReceive方法
//3.在菜单中对接受者进行注册
1 <!-- 注册接受者 --> 2 <receiver 3 android:name="com.example.mybroadcast1.AReceiver" 4 > 5 <intent-filter > 6 <action android:name="android.intent.action.EDIT"/> 7 </intent-filter> 8 </receiver> 9 <receiver 10 android:name="com.example.mybroadcast1.BReceiver" 11 ></receiver>
例:程序中注册广播
1 /** 2 * 在程序中注册广播 3 */ 4 private AReceiver receiver; 5 protected static final String ACTION_A = "com.example.mybroadcast2.ACTION_A"; 6 7 //1.注册广播 8 findViewById(R.id.button1).setOnClickListener(new OnClickListener() { 9 @Override 10 public void onClick(View v) { 11 receiver = new AReceiver(); 12 IntentFilter IF=new IntentFilter(); 13 IF.addAction(ACTION_A); 14 //注册 15 registerReceiver(receiver, IF); 16 } 17 }); 18 19 //2.发送广播 20 findViewById(R.id.button2).setOnClickListener(new OnClickListener() { 21 public void onClick(View v) { 22 //发送 23 Intent intent=new Intent(); 24 intent.setAction(ACTION_A); 25 sendBroadcast(intent); 26 } 27 }); 28 //3.撤销广播 29 findViewById(R.id.button3).setOnClickListener(new OnClickListener() { 30 public void onClick(View v) { 31 if(receiver!=null) 32 unregisterReceiver(receiver); 33 } 34 });