android 05

Posted 初见

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 05相关的知识,希望对你有一定的参考价值。

控件: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         });
java代码

 

 

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         });
Spinner

 

 

广播机制:

  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);
BroadCast

 

 

 

 

//普通类 --变成--> 接受者

//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>
Manifest

 

 

例:程序中注册广播

技术分享
 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         });
在程序中注册广播

 

 

 

以上是关于android 05的主要内容,如果未能解决你的问题,请参考以下文章

片段中的Android致命异常

Android片段z-index覆盖

Android片段布局完成膨胀

android在特定片段中隐藏工具栏

Kotlin Android Studio - setContenView - 绑定(片段)

如何使用来自其他活动android的片段打开一个活动