ProgressBar、RatingBar和Spinner控件

1、ProgressBar、SeekBar与RatingBar控件

ProgressBar控件,也就是我们通常的进度条控件,可以显示加载的进度等。SeekBar控件,滑块控件,可以根据用户的需要动态为赋值。本例子就是拖动SeekBar,让进度条实时显示拖动的进度。RatingBar控件,星条控件,我们经常见到的打分控件,五颗星星。下面是main.xml页面的代码。我们声明了几个控件。

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:paddingBottom="@dimen/activity_vertical_margin"
 6     android:paddingLeft="@dimen/activity_horizontal_margin"
 7     android:paddingRight="@dimen/activity_horizontal_margin"
 8     android:paddingTop="@dimen/activity_vertical_margin"
 9     tools:context=".MainActivity" >
10
11     <TextView
12         android:id="@+id/textView1"
13         android:layout_width="wrap_content"
14         android:layout_height="wrap_content"
15         android:text="@string/hello_world" />
16
17     <ProgressBar
18         android:id="@+id/progressBar1"
19         android:layout_width="fill_parent"
20         android:layout_height="wrap_content"
21         android:layout_alignParentLeft="true"
22         android:layout_below="@+id/textView1"
23         android:layout_marginTop="68dp"
24         android:background="@drawable/color" />
25
26     <SeekBar
27         android:id="@+id/seekBar1"
28         android:layout_width="match_parent"
29         android:layout_height="wrap_content"
30         android:layout_alignParentLeft="true"
31         android:layout_alignParentRight="true"
32         android:layout_below="@+id/progressBar1"
33         android:layout_marginTop="48dp" />
34
35     <RatingBar
36         android:id="@+id/ratingBar1"
37         android:layout_width="wrap_content"
38         android:layout_height="wrap_content"
39         android:layout_alignLeft="@+id/seekBar1"
40         android:layout_below="@+id/seekBar1"
41         android:layout_marginTop="68dp" />
42
43     <ProgressBar
44         android:id="@+id/progressBar2"
45         style="?android:attr/progressBarStyleHorizontal"
46         android:layout_width="fill_parent"
47         android:layout_height="wrap_content"
48         android:layout_alignParentRight="true"
49         android:layout_below="@+id/ratingBar1" />
50
51 </RelativeLayout>

控件生成

这里我们只需要捕捉seekbar的拖动事件以及RatingBar控件的事件。SeekBar的事件是setOnSeekBarChangeListener,而Ratingbar的事件为setOnRatingBarChangeListener。

 1     protected void onCreate(Bundle savedInstanceState) {
 2         super.onCreate(savedInstanceState);
 3         setContentView(R.layout.activity_main);
 4         final SeekBar seek=(SeekBar)findViewById(R.id.seekBar1);
 5         final ProgressBar process=(ProgressBar)findViewById(R.id.progressBar2);
 6         final RatingBar rating=(RatingBar)findViewById(R.id.ratingBar1);
 7         rating.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
 8
 9             @Override
10             public void onRatingChanged(RatingBar ratingBar, float rating,
11                     boolean fromUser) {
12                 // TODO 自动生成的方法存根
13                 float rate=ratingBar.getRating();
14                 process.setProgress((int)(rate/5*100));
15             }
16         });
17
18         seek.setOnSeekBarChangeListener(new  SeekBar.OnSeekBarChangeListener() {
19
20             @Override
21             public void onStopTrackingTouch(SeekBar seekBar) {
22                 // TODO 自动生成的方法存根
23                 process.setProgress(seek.getProgress());
24             }
25
26             @Override
27             public void onStartTrackingTouch(SeekBar seekBar) {
28                 // TODO 自动生成的方法存根
29
30             }
31
32             @Override
33             public void onProgressChanged(SeekBar seekBar, int progress,
34                     boolean fromUser) {
35                 // TODO 自动生成的方法存根
36
37             }
38         });
39     }

事件监听

这样我们就对进度条的控件有了初步了解。

2.Spinner控件

Spinner控件,下拉列表控件,和ComBox控件有点相似,使用的时候,也需要为他制定item。通过在String.xml

文件中添加新的字符串资源。在后台通过适配器将资源绑定给spinner控件。

 1     BaseAdapter baseA=new BaseAdapter(){
 2
 3                 @Override
 4                 public int getCount() {
 5                     // TODO 自动生成的方法存根
 6                     return strid.length;
 7                 }
 8
 9                 @Override
10                 public Object getItem(int position) {
11                     // TODO 自动生成的方法存根
12                     return null;
13                 }
14
15                 @Override
16                 public long getItemId(int position) {
17                     // TODO 自动生成的方法存根
18                     return 0;
19                 }
20
21                 @Override
22                 public View getView(int position, View convertView,
23                         ViewGroup parent) {
24                     // TODO 自动生成的方法存根
25                     LinearLayout li=new LinearLayout(MainActivity.this);
26                     TextView text1=new TextView(MainActivity.this);
27                     text1.setText(" "+getResources().getText(strid[position]));
28                     text1.setTextSize(24);
29                 li.addView(text1);
30                 return li;
31                 }};
32                 spinner.setAdapter(baseA);

适配器绑定

ProgressBar、RatingBar和Spinner控件

时间: 2024-08-05 10:07:53

ProgressBar、RatingBar和Spinner控件的相关文章

Android开发之Spinner控件使用

之前博客中已经介绍了Spinner控件的数据绑定,地址在:http://blog.csdn.net/zdw_wym/article/details/50000357,本篇将介绍Spinner的事件监听器:OnItemSelectedListener . Spinner组件的主要功能是用于进行下拉列表的显示,当用户选中下拉列表中的某个选项后可以使用Spinner类提供的setOnItemSelectedListener()方法进行监听. 在这之前让我们首先了解一下OnItemSelectedLis

android 学习 Spinner控件的使用

今晚看了下spinner控件的使用,结合博客大神的教程,一个小demo 一,SpinnerActivity private Spinner spinner; private ArrayAdapter<String> adapter; private List<String> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

Android——spinner控件实现读取xml资源,省、市两级互动

(1)首先在res文件夹下面的values中创建一个省市arrays.xml文件夹,如下 <?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="province"> <item>-省份-</item> <item>河北省</item> <item>山西省</i

android:Spinner控件的使用

1.效果图 2.创建页面文件(main.xml) <Spinner android:id="@+id/spinner1" android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/tvResult" android:layout_width="match

Android Studio中Spinner控件的数据绑定实现

这里介绍使用集合在程序中为Spinner控件设定数据源,步骤如下: 1.在Android Studio界面中,选择"Project",然后展开"app"->"res"->"layout",打开activity_main.xml,添加一个Spinner控件,代码如下: <Spinner android:id="@+id/eduSpinner" android:layout_width=&qu

Android spinner控件

spinner控件是Android中下拉控件,现在介绍它两种用法.第一种,从资源文件中获取下拉值:第二种,从代码中获取下拉值. 第一种,首先要在资源文件中把值写好: <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">spinner</string> <string name="acti

android控件开发之Spinner控件

android控件开发之Spinner控件 概述:android中,Spinner控件主要是用来显示下拉列表,同时,用户可以选择列表中的数据,作为当前的选择 java代码: 此代码中使用了两种方法给Spinner提供数据(method 1和method 2).运行时任选其一即可 方法一: 使用的动态list的形式给Spinner提供数据 方法二: 使用的Strings.xml中定义的固定String array提供数据 根据项目需要,选择相关方法即可 package com.example.sp

关于Android PopupWindow中实用Spinner控件点击APP Crash情况整理!

场景异常信息如下: android.view.WindowManager$BadTokenException: Unable to add window -- token [email protected] is not valid; is your activity running? at android.view.ViewRootImpl.setView(ViewRootImpl.java:646) at android.view.WindowManagerGlobal.addView(Wi

Fragment中添加spinner控件问题

今天编写Android程序,遇到一个问题: fragment是activity的一部分,具有高度的自由性.我编写了一个Fragment程序,在其中添加了Spinner控件(就是普通的添加方式),但是就是运用ArrayAdapter进行数据绑定的时候 ArrayAdapter<String>(View,int,String)中的View类型参数,并不能用常用的this来代替.必须用getActivity().getBaseContext()来代替. 下面来说明一下具体的原因: this应用上下文