• 08_UI控件


      uiControl整体界面如下图所示,按照视频教程,学习控件由于是初学,都是最基础知识。还有ImageSwitcherGallery未更新,o(╯□╰)o

     1 package com.example.uiconrrol;
     2 
     3 import android.content.Context;
     4 import android.content.Intent;
     5 
     6 public class ListCellData {
     7 
     8     public ListCellData(Context context, String controlName,
     9             Intent relatedIntent) {
    10         this.controlName = controlName;
    11         this.context = context;
    12         this.relatedIntent = relatedIntent;
    13     }
    14 
    15     private String controlName = "";
    16 
    17     public String getControlName() {
    18         return controlName;
    19     }
    20 
    21     private Context context = null;
    22 
    23     public Context getContext() {
    24         return context;
    25     }
    26 
    27     private Intent relatedIntent = null;
    28 
    29     public Intent getRelatedIntent() {
    30         return relatedIntent;
    31     }
    32 
    33     public void startActivity() {
    34         getContext().startActivity(getRelatedIntent());
    35     }
    36 
    37     // 重写toString方法,只显示Name
    38     @Override
    39     public String toString() {
    40         return getControlName();
    41     }
    42 
    43 }
    ListCellData
     1 package com.example.uiconrrol;
     2 
     3 import android.app.ListActivity;
     4 import android.content.Intent;
     5 import android.os.Bundle;
     6 import android.view.View;
     7 import android.widget.ArrayAdapter;
     8 import android.widget.ListView;
     9 
    10 public class MainActivity extends ListActivity {
    11 
    12     private ArrayAdapter<ListCellData> adapter;
    13 
    14     @Override
    15     protected void onCreate(Bundle savedInstanceState) {
    16         super.onCreate(savedInstanceState);
    17 
    18         adapter = new ArrayAdapter<ListCellData>(this,
    19                 android.R.layout.simple_list_item_1);
    20         setListAdapter(adapter);
    21 
    22         adapter.add(new ListCellData(this, "RadioGroup", new Intent(this,
    23                 AtyUsingRadioGroup.class)));
    24         adapter.add(new ListCellData(this, "CheckBox", new Intent(this,
    25                 AtyUsingCheckBox.class)));
    26         adapter.add(new ListCellData(this, "DatePicker", new Intent(this,
    27                 AtyUsingDatePicker.class)));
    28         adapter.add(new ListCellData(this, "TimePicker", new Intent(this,
    29                 AtyUsingTimePicker.class)));
    30         adapter.add(new ListCellData(this, "Spinner", new Intent(this,
    31                 AtyUsingSpinner.class)));
    32         adapter.add(new ListCellData(this, "ProgressBar", new Intent(this,
    33                 AtyUsingProgressBar.class)));
    34         adapter.add(new ListCellData(this, "SeekBar", new Intent(this,
    35                 AtyUsingSeekBar.class)));
    36         adapter.add(new ListCellData(this, "GridView", new Intent(this,
    37                 AtyUsingGridView.class)));
    38         adapter.add(new ListCellData(this, "ProgressDialog", new Intent(this,
    39                 AtyUsingProgressDialog.class)));
    40         adapter.add(new ListCellData(this, "Notification", new Intent(this,
    41                 AtyUsingNotification.class)));
    42         adapter.add(new ListCellData(this, "SrcollView", new Intent(this,
    43                 AtyUsingSrcollView.class)));
    44         adapter.add(new ListCellData(this, "RatingBar", new Intent(this,
    45                 AtyUsingRatingBar.class)));
    46     }
    47 
    48     @Override
    49     protected void onListItemClick(ListView l, View v, int position, long id) {
    50 
    51         ListCellData data = adapter.getItem(position);
    52         data.startActivity();
    53 
    54         super.onListItemClick(l, v, position, id);
    55     }
    56 
    57 }
    MainActivity
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     3     package="com.example.uiconrrol"
     4     android:versionCode="1"
     5     android:versionName="1.0" >
     6 
     7     <uses-sdk
     8         android:minSdkVersion="8"
     9         android:targetSdkVersion="21" />
    10 
    11     <application
    12         android:allowBackup="true"
    13         android:icon="@drawable/ic_launcher"
    14         android:label="@string/app_name"
    15         android:theme="@style/AppTheme" >
    16         <activity
    17             android:name=".MainActivity"
    18             android:label="@string/app_name" >
    19             <intent-filter>
    20                 <action android:name="android.intent.action.MAIN" />
    21 
    22                 <category android:name="android.intent.category.LAUNCHER" />
    23             </intent-filter>
    24         </activity>
    25         <activity android:name="AtyUsingRadioGroup" >
    26         </activity>
    27         <activity android:name="AtyUsingCheckBox" >
    28         </activity>
    29         <activity android:name="AtyUsingDatePicker" >
    30         </activity>
    31         <activity android:name="AtyUsingTimePicker" >
    32         </activity>
    33         <activity android:name="AtyUsingSpinner" >
    34         </activity>
    35         <activity android:name="AtyUsingProgressBar" >
    36         </activity>
    37         <activity android:name="AtyUsingSeekBar" >
    38         </activity>
    39         <activity android:name="AtyUsingGridView" >
    40         </activity>
    41         <activity android:name="AtyUsingProgressDialog" >
    42         </activity>
    43         <activity android:name="AtyUsingNotification" >
    44         </activity>
    45         <activity android:name="AtyUsingSrcollView" >
    46         </activity>
    47         <activity android:name="AtyUsingRatingBar" >
    48         </activity>
    49     </application>
    50 
    51 </manifest>
    AndroidManifest.xml

    1. RadioGroup

      介绍Android中如何使用RadioGroupRadioButton,实现自定义的RadioGroup中被选中RadioButton的变更监听事件。

     1 package com.example.uiconrrol;
     2 
     3 import android.app.Activity;
     4 import android.app.AlertDialog;
     5 import android.os.Bundle;
     6 import android.view.View;
     7 import android.widget.RadioButton;
     8 
     9 public class AtyUsingRadioGroup extends Activity {
    10 
    11     private RadioButton radioRight;
    12 
    13     @Override
    14     protected void onCreate(Bundle savedInstanceState) {
    15         // TODO Auto-generated method stub
    16         super.onCreate(savedInstanceState);
    17         setContentView(R.layout.aty_using_radiogroup);
    18 
    19         radioRight = (RadioButton) findViewById(R.id.radioRight);
    20 
    21         findViewById(R.id.btnSubmit).setOnClickListener(
    22                 new View.OnClickListener() {
    23 
    24                     @Override
    25                     public void onClick(View v) {
    26                         if (radioRight.isChecked()) {
    27                             new AlertDialog.Builder(AtyUsingRadioGroup.this)
    28                                     .setTitle("判断").setMessage("回答正确")
    29                                     .setPositiveButton("Cancel", null).show();
    30                         } else {
    31                             new AlertDialog.Builder(AtyUsingRadioGroup.this)
    32                                     .setTitle("判断").setMessage("回答错误")
    33                                     .setPositiveButton("Cancel", null).show();
    34                         }
    35                     }
    36                 });
    37     }
    38 }
    AtyUsingRadioGroup
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical" >
     6 
     7     <TextView
     8         android:id="@+id/textView1"
     9         android:layout_width="wrap_content"
    10         android:layout_height="wrap_content"
    11         android:text="老师是个帅哥吗?" />
    12 
    13     <RadioGroup
    14         android:id="@+id/radioGroup1"
    15         android:layout_width="wrap_content"
    16         android:layout_height="wrap_content" >
    17 
    18         <RadioButton
    19             android:id="@+id/radioRight"
    20             android:layout_width="wrap_content"
    21             android:layout_height="wrap_content"
    22             android:text="是" />
    23 
    24         <RadioButton
    25             android:id="@+id/radioNo"
    26             android:layout_width="wrap_content"
    27             android:layout_height="wrap_content"
    28             android:text="不是" />
    29 
    30         <RadioButton
    31             android:id="@+id/radio2"
    32             android:layout_width="wrap_content"
    33             android:layout_height="wrap_content"
    34             android:text="不知道" />
    35     </RadioGroup>
    36 
    37     <Button
    38         android:id="@+id/btnSubmit"
    39         android:layout_width="wrap_content"
    40         android:layout_height="wrap_content"
    41         android:text="提交" />
    42 
    43 </LinearLayout>
    aty_using_radiogroup.xml

    2. CheckBox

      CheckBox是多项选择,允许用户用列表中选择一个或多个选项,它在android源代码中是继承CompoundButton类的,而CompoundButton类是继承于Button类的。

     1 package com.example.uiconrrol;
     2 
     3 import android.app.Activity;
     4 import android.app.AlertDialog;
     5 import android.os.Bundle;
     6 import android.view.View;
     7 import android.widget.Button;
     8 import android.widget.CheckBox;
     9 
    10 public class AtyUsingCheckBox extends Activity {
    11 
    12     private CheckBox cbMifan, cbDoufu, cbXihongshi, cbTudou;
    13     private Button btnSubmit;
    14 
    15     @Override
    16     protected void onCreate(Bundle savedInstanceState) {
    17         super.onCreate(savedInstanceState);
    18         setContentView(R.layout.aty_using_checkbox);
    19 
    20         cbMifan = (CheckBox) findViewById(R.id.cbMifan);
    21         cbDoufu = (CheckBox) findViewById(R.id.cbDoufu);
    22         cbXihongshi = (CheckBox) findViewById(R.id.cbXihongshi);
    23         cbTudou = (CheckBox) findViewById(R.id.cbTudou);
    24 
    25         btnSubmit = (Button) findViewById(R.id.btnSubmit);
    26 
    27         btnSubmit.setOnClickListener(new View.OnClickListener() {
    28 
    29             @Override
    30             public void onClick(View v) {
    31 
    32                 String str = "中午要吃的是: 
    ";
    33 
    34                 if (cbMifan.isChecked()) {
    35                     str += "米饭 
    ";
    36                 }
    37                 if (cbDoufu.isChecked()) {
    38                     str += "豆腐 
    ";
    39                 }
    40                 if (cbXihongshi.isChecked()) {
    41                     str += "西红柿 
    ";
    42                 }
    43                 if (cbTudou.isChecked()) {
    44                     str += "土豆";
    45                 }
    46 
    47                 new AlertDialog.Builder(AtyUsingCheckBox.this).setTitle("结果")
    48                         .setMessage(str).setPositiveButton("关闭", null).show();
    49             }
    50         });
    51     }
    52 }
    AtyUsingCheckBox
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical" >
     6 
     7     <TextView
     8         android:id="@+id/textView1"
     9         android:layout_width="wrap_content"
    10         android:layout_height="wrap_content"
    11         android:text="中午你打算吃什么?"
    12         android:textAppearance="?android:attr/textAppearanceLarge" />
    13 
    14     <CheckBox
    15         android:id="@+id/cbTudou"
    16         android:layout_width="wrap_content"
    17         android:layout_height="wrap_content"
    18         android:text="土豆" />
    19 
    20     <CheckBox
    21         android:id="@+id/cbXihongshi"
    22         android:layout_width="wrap_content"
    23         android:layout_height="wrap_content"
    24         android:text="西红柿" />
    25 
    26     <CheckBox
    27         android:id="@+id/cbMifan"
    28         android:layout_width="wrap_content"
    29         android:layout_height="wrap_content"
    30         android:text="米饭" />
    31 
    32     <CheckBox
    33         android:id="@+id/cbDoufu"
    34         android:layout_width="wrap_content"
    35         android:layout_height="wrap_content"
    36         android:text="豆腐" />
    37 
    38     <Button
    39         android:id="@+id/btnSubmit"
    40         android:layout_width="wrap_content"
    41         android:layout_height="wrap_content"
    42         android:text="提交" />
    43 
    44 </LinearLayout>
    aty_using_checkbox.xml

    3. DatePicker

      DatePicker是一个选择年月日的日历控件。

     1 package com.example.uiconrrol;
     2 
     3 import android.app.Activity;
     4 import android.app.DatePickerDialog;
     5 import android.os.Bundle;
     6 import android.view.View;
     7 import android.widget.Button;
     8 import android.widget.DatePicker;
     9 
    10 public class AtyUsingDatePicker extends Activity {
    11 
    12     private Button btnDatePicer;
    13 
    14     @Override
    15     protected void onCreate(Bundle savedInstanceState) {
    16         super.onCreate(savedInstanceState);
    17         setContentView(R.layout.aty_using_datepicker);
    18 
    19         btnDatePicer = (Button) findViewById(R.id.btnSelectDate);
    20 
    21         btnDatePicer.setOnClickListener(new View.OnClickListener() {
    22 
    23             @Override
    24             public void onClick(View v) {
    25                 new DatePickerDialog(AtyUsingDatePicker.this,
    26                         new DatePickerDialog.OnDateSetListener() {
    27 
    28                             @Override
    29                             public void onDateSet(DatePicker view, int year,
    30                                     int monthOfYear, int dayOfMonth) {
    31                                 btnDatePicer.setText(String.format("%d:%d:%d",
    32                                         year, monthOfYear, dayOfMonth));
    33                             }
    34                         }, 2014, 10, 22).show();
    35             }
    36         });
    37     }
    38 }
    AtyUsingDatePicker
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical" >
     6 
     7     <Button
     8         android:id="@+id/btnSelectDate"
     9         android:layout_width="match_parent"
    10         android:layout_height="wrap_content"
    11         android:text="0000:00:00" />
    12 
    13 </LinearLayout>
    aty_using_datepicker.xml

    4. TimePicker

      TimePicker也继承自FrameLayout类,时间选择控件向用户显示一天中的时间(可以为24小时,也可以为AM/PM),并允许用户进行选择,如果要捕获用户修改时间数据的事件,便需要为TimePicker添加 OnTimeChangedListener监听器。

     1 package com.example.uiconrrol;
     2 
     3 import android.app.Activity;
     4 import android.app.TimePickerDialog;
     5 import android.os.Bundle;
     6 import android.view.View;
     7 import android.widget.Button;
     8 import android.widget.TimePicker;
     9 
    10 public class AtyUsingTimePicker extends Activity {
    11 
    12     private Button btnSelectTime;
    13 
    14     @Override
    15     protected void onCreate(Bundle savedInstanceState) {
    16         super.onCreate(savedInstanceState);
    17         setContentView(R.layout.aty_using_timepicker);
    18 
    19         btnSelectTime = (Button) findViewById(R.id.btnSelectTime);
    20 
    21         btnSelectTime.setOnClickListener(new View.OnClickListener() {
    22 
    23             @Override
    24             public void onClick(View v) {
    25 
    26                 new TimePickerDialog(AtyUsingTimePicker.this,
    27                         new TimePickerDialog.OnTimeSetListener() {
    28 
    29                             @Override
    30                             public void onTimeSet(TimePicker view,
    31                                     int hourOfDay, int minute) {
    32                                 btnSelectTime.setText(String.format("%s:%s",
    33                                         timeFormat(hourOfDay),
    34                                         timeFormat(minute)));
    35                             }
    36                         }, 10, 25, true).show();
    37             }
    38         });
    39     }
    40 
    41     public String timeFormat(int value) {
    42         return (value >= 10) ? ("" + value) : ("0" + value);
    43     }
    44 }
    AtyUsingTimePicker
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical" >
     6 
     7     <Button
     8         android:id="@+id/btnSelectTime"
     9         android:layout_width="wrap_content"
    10         android:layout_height="wrap_content"
    11         android:text="00:00" />
    12 
    13 </LinearLayout>
    aty_using_timepicker.xml

    5. Spinner

      Spinner位于android.widget包下,每次只显示用户选中的元素,当用户再次点击时,会弹出选择列表供用户选择,而选择列表中的元素同样来自适配器,SpinnerView类的一个子类。

     1 package com.example.uiconrrol;
     2 
     3 import android.app.Activity;
     4 import android.os.Bundle;
     5 import android.widget.ArrayAdapter;
     6 import android.widget.Spinner;
     7 
     8 public class AtyUsingSpinner extends Activity {
     9 
    10     private Spinner spinner;
    11     private ArrayAdapter<String> adapter;
    12 
    13     @Override
    14     protected void onCreate(Bundle savedInstanceState) {
    15         super.onCreate(savedInstanceState);
    16         setContentView(R.layout.aty_using_spinner);
    17 
    18         adapter = new ArrayAdapter<String>(this,
    19                 android.R.layout.simple_spinner_item);
    20         adapter.add("1");
    21         adapter.add("2");
    22         adapter.add("3");
    23         adapter.add("4");
    24 
    25         spinner = (Spinner) findViewById(R.id.spinner);
    26         spinner.setAdapter(adapter);
    27     }
    28 }
    AtyUsingSpinner
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical" >
     6 
     7     <Spinner
     8         android:id="@+id/spinner"
     9         android:layout_width="match_parent"
    10         android:layout_height="wrap_content" />
    11 
    12 </LinearLayout>
    aty_using_spinner.xml

    6. ProgressBar

      ProgressBar是一个进度条控件,当用户在后台执行一些任务时,在前台展示的信息,用于表示任务正在处理,请用户等待或者给用户展示处理的进度消息等,它在android源代码中是直接继承View类的。

     1 package com.example.uiconrrol;
     2 
     3 import java.util.Timer;
     4 import java.util.TimerTask;
     5 
     6 import android.app.Activity;
     7 import android.os.Bundle;
     8 import android.widget.ProgressBar;
     9 
    10 public class AtyUsingProgressBar extends Activity {
    11 
    12     private ProgressBar pb;
    13 
    14     @Override
    15     protected void onCreate(Bundle savedInstanceState) {
    16         super.onCreate(savedInstanceState);
    17         setContentView(R.layout.aty_using_progressbar);
    18 
    19         pb = (ProgressBar) findViewById(R.id.progressBar);
    20         pb.setMax(100);
    21 
    22     }
    23 
    24     @Override
    25     protected void onResume() {
    26         super.onResume();
    27 
    28         startTimer();
    29     }
    30 
    31     @Override
    32     protected void onPause() {
    33         super.onPause();
    34 
    35         stopTimer();
    36     }
    37 
    38     private int progress = 0;
    39 
    40     public void startTimer() {
    41         if (timer == null) {
    42             timer = new Timer();
    43             task = new TimerTask() {
    44 
    45                 @Override
    46                 public void run() {
    47 
    48                     progress++;
    49                     pb.setProgress(progress);
    50 
    51                 }
    52             };
    53             timer.scheduleAtFixedRate(task, 1000, 500);
    54         }
    55     }
    56 
    57     public void stopTimer() {
    58         if (timer != null) {
    59             task.cancel();
    60             timer.cancel();
    61 
    62             task = null;
    63             timer = null;
    64         }
    65     }
    66 
    67     private Timer timer = null;
    68     private TimerTask task = null;
    69 }
    AtyUsingProgressBar
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical" >
     6 
     7     <ProgressBar
     8         android:id="@+id/progressBar2"
     9         android:layout_width="wrap_content"
    10         android:layout_height="wrap_content" />
    11 
    12     <ProgressBar
    13         android:id="@+id/progressBar3"
    14         style="?android:attr/progressBarStyleLarge"
    15         android:layout_width="wrap_content"
    16         android:layout_height="wrap_content" />
    17 
    18     <ProgressBar
    19         android:id="@+id/progressBar"
    20         style="?android:attr/progressBarStyleHorizontal"
    21         android:layout_width="fill_parent"
    22         android:layout_height="wrap_content" />
    23 
    24 </LinearLayout>
    aty_using_progressbar.xml

    7. SeekBar

      SeekBar控件其实是相对高级的进度条,是可以拖动的,可以改变进度的一个进度条控件。

     1 package com.example.uiconrrol;
     2 
     3 import android.app.Activity;
     4 import android.os.Bundle;
     5 import android.widget.SeekBar;
     6 import android.widget.TextView;
     7 
     8 public class AtyUsingSeekBar extends Activity {
     9 
    10     private SeekBar seekBar;
    11     private TextView txOut;
    12 
    13     @Override
    14     protected void onCreate(Bundle savedInstanceState) {
    15         super.onCreate(savedInstanceState);
    16         setContentView(R.layout.aty_using_seekbar);
    17 
    18         txOut = (TextView) findViewById(R.id.txOut);
    19 
    20         seekBar = (SeekBar) findViewById(R.id.seekBar);
    21         seekBar.setMax(100);
    22         seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
    23 
    24             @Override
    25             public void onStopTrackingTouch(SeekBar seekBar) {
    26 
    27             }
    28 
    29             @Override
    30             public void onStartTrackingTouch(SeekBar seekBar) {
    31 
    32             }
    33 
    34             @Override
    35             public void onProgressChanged(SeekBar seekBar, int progress,
    36                     boolean fromUser) {
    37                 txOut.setText(String.format("当前进度为:%d", progress) + "%");
    38             }
    39         });
    40 
    41     }
    42 }
    AtyUsingSeekBar
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical" >
     6 
     7     <SeekBar
     8         android:id="@+id/seekBar"
     9         android:layout_width="match_parent"
    10         android:layout_height="wrap_content" />
    11 
    12     <TextView
    13         android:id="@+id/txOut"
    14         android:layout_width="fill_parent"
    15         android:layout_height="wrap_content"
    16         android:text="TextView" />
    17 
    18 </LinearLayout>
    aty_using_seekbar.xml

    8. GridView

      GridView(网格视图)是按照行列的方式来显示内容的,一般用于显示图片等内容,比如实现九宫格图,用GridView是首选,也是最简单的。

     1 package com.example.uiconrrol;
     2 
     3 import android.app.Activity;
     4 import android.os.Bundle;
     5 import android.widget.ArrayAdapter;
     6 import android.widget.GridView;
     7 
     8 public class AtyUsingGridView extends Activity {
     9 
    10     private ArrayAdapter<String> adapter;
    11     private GridView gridView;
    12 
    13     @Override
    14     protected void onCreate(Bundle savedInstanceState) {
    15         super.onCreate(savedInstanceState);
    16         setContentView(R.layout.aty_using_gridview);
    17 
    18         adapter = new ArrayAdapter<String>(this,
    19                 android.R.layout.simple_list_item_1);
    20 
    21         gridView = (GridView) findViewById(R.id.gridView);
    22         gridView.setAdapter(adapter);
    23 
    24         for (int i = 0; i < 60; i++) {
    25             adapter.add("Nankai" + i);
    26         }
    27     }
    28 }
    AtyUsingGridView
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical" >
     6 
     7     <GridView
     8         android:id="@+id/gridView"
     9         android:layout_width="match_parent"
    10         android:layout_height="fill_parent"
    11         android:numColumns="3" >
    12     </GridView>
    13 
    14 </LinearLayout>
    aty_using_gridview.xml

    9. ProgressDialog

      ProgressDialog,顾名思义,就是一个进度对话框,常用于显示载入进度、下载进度等,合理使用ProgressDialog能增加用户体验,让用户知道现在程序所处的状态。

     1 package com.example.uiconrrol;
     2 
     3 import android.app.Activity;
     4 import android.app.ProgressDialog;
     5 import android.os.Bundle;
     6 import android.view.View;
     7 
     8 public class AtyUsingProgressDialog extends Activity {
     9 
    10     private ProgressDialog progressDialog;
    11 
    12     @Override
    13     protected void onCreate(Bundle savedInstanceState) {
    14         super.onCreate(savedInstanceState);
    15         setContentView(R.layout.aty_using_progressdialog);
    16 
    17         findViewById(R.id.btnShowProgressDialog).setOnClickListener(
    18                 new View.OnClickListener() {
    19 
    20                     @Override
    21                     public void onClick(View v) {
    22                         progressDialog = ProgressDialog.show(
    23                                 AtyUsingProgressDialog.this, "加载中", "正在加载,请稍后");
    24 
    25                         new Thread() {
    26                             public void run() {
    27                                 try {
    28                                     Thread.sleep(3000);
    29 
    30                                     progressDialog.dismiss();
    31                                 } catch (InterruptedException e) {
    32                                     e.printStackTrace();
    33                                 }
    34                             };
    35                         }.start();
    36                     }
    37                 });
    38     }
    39 }
    AtyUsingProgressDialog
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical" >
     6 
     7     <Button
     8         android:id="@+id/btnShowProgressDialog"
     9         android:layout_width="wrap_content"
    10         android:layout_height="wrap_content"
    11         android:text="Show Progress Dialog" />
    12 
    13 </LinearLayout>
    aty_using_progressdialog.xml

    10. Notification

      NotificationAndroid中常用的一种通知方式,当有未读短信或未接电话的时候,屏幕状态栏就会有提示图标,这时可以下拉状态栏来读取通知。在使用微信的时(微信在后台运行),如果有新消息时便会发出声音提示,状态栏也有相应的微信提示。

     1 package com.example.uiconrrol;
     2 
     3 import android.app.Activity;
     4 import android.app.Notification;
     5 import android.app.NotificationManager;
     6 import android.app.PendingIntent;
     7 import android.content.Context;
     8 import android.os.Bundle;
     9 import android.view.View;
    10 
    11 public class AtyUsingNotification extends Activity {
    12 
    13     private NotificationManager nm;
    14     
    15     @Override
    16     protected void onCreate(Bundle savedInstanceState) {
    17         super.onCreate(savedInstanceState);
    18         setContentView(R.layout.aty_using_notification);
    19         
    20         nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    21         nm.cancel(R.layout.aty_using_notification);
    22         
    23         findViewById(R.id.btnShowNotification).setOnClickListener(new View.OnClickListener() {
    24             
    25             @Override
    26             public void onClick(View v) {
    27                 Notification n = new Notification(R.drawable.ic_launcher, "Ticker Text", System.currentTimeMillis());
    28                 n.setLatestEventInfo(AtyUsingNotification.this, "Title", "content", PendingIntent.getActivity(AtyUsingNotification.this, 1, getIntent(), 0));
    29                 nm.notify(R.layout.aty_using_notification, n);
    30             }
    31         });
    32     }
    33 }
    AtyUsingNotification
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical" >
     6 
     7     <Button
     8         android:id="@+id/btnShowNotification"
     9         android:layout_width="wrap_content"
    10         android:layout_height="wrap_content"
    11         android:text="Button" />
    12 
    13 </LinearLayout>
    aty_using_notification.xml

    11. ScrollView

      ScrollView滚动视图是指当拥有很多内容,屏幕显示不完时,需要通过滚动跳来显示的视图。ScrollView只支持垂直滚动。

     1 package com.example.uiconrrol;
     2 
     3 import android.app.Activity;
     4 import android.os.Bundle;
     5 
     6 public class AtyUsingSrcollView extends Activity {
     7 
     8     @Override
     9     protected void onCreate(Bundle savedInstanceState) {
    10         super.onCreate(savedInstanceState);
    11         setContentView(R.layout.aty_using_scrollview);
    12     }
    13 }
    AtyUsingSrcollView
      1 <?xml version="1.0" encoding="utf-8"?>
      2 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
      3     android:layout_width="match_parent"
      4     android:layout_height="match_parent" >
      5 
      6     <LinearLayout
      7         android:layout_width="fill_parent"
      8         android:layout_height="wrap_content"
      9         android:orientation="vertical" >
     10 
     11         <TextView
     12             android:id="@+id/textView1"
     13             android:layout_width="wrap_content"
     14             android:layout_height="wrap_content"
     15             android:text="TextView" />
     16 
     17         <EditText
     18             android:id="@+id/editText1"
     19             android:layout_width="match_parent"
     20             android:layout_height="wrap_content"
     21             android:ems="10"
     22             android:inputType="textMultiLine" >
     23 
     24             <requestFocus />
     25         </EditText>
     26 
     27         <EditText
     28             android:id="@+id/editText2"
     29             android:layout_width="match_parent"
     30             android:layout_height="wrap_content"
     31             android:ems="10"
     32             android:inputType="textPersonName" />
     33 
     34         <Spinner
     35             android:id="@+id/spinner1"
     36             android:layout_width="match_parent"
     37             android:layout_height="wrap_content" />
     38 
     39         <Button
     40             android:id="@+id/button1"
     41             style="?android:attr/buttonStyleSmall"
     42             android:layout_width="wrap_content"
     43             android:layout_height="wrap_content"
     44             android:text="Button" />
     45 
     46         <EditText
     47             android:id="@+id/editText3"
     48             android:layout_width="match_parent"
     49             android:layout_height="wrap_content"
     50             android:ems="10"
     51             android:inputType="textPostalAddress" />
     52 
     53         <ProgressBar
     54             android:id="@+id/progressBar1"
     55             style="?android:attr/progressBarStyleLarge"
     56             android:layout_width="wrap_content"
     57             android:layout_height="wrap_content" />
     58 
     59         <Spinner
     60             android:id="@+id/spinner2"
     61             android:layout_width="match_parent"
     62             android:layout_height="wrap_content" />
     63 
     64         <RatingBar
     65             android:id="@+id/ratingBar1"
     66             android:layout_width="wrap_content"
     67             android:layout_height="wrap_content" />
     68 
     69         <RadioGroup
     70             android:id="@+id/radioGroup2"
     71             android:layout_width="wrap_content"
     72             android:layout_height="wrap_content" >
     73 
     74             <RadioButton
     75                 android:id="@+id/radio0"
     76                 android:layout_width="wrap_content"
     77                 android:layout_height="wrap_content"
     78                 android:checked="true"
     79                 android:text="RadioButton" />
     80 
     81             <RadioButton
     82                 android:id="@+id/radio1"
     83                 android:layout_width="wrap_content"
     84                 android:layout_height="wrap_content"
     85                 android:text="RadioButton" />
     86 
     87             <RadioButton
     88                 android:id="@+id/radio2"
     89                 android:layout_width="wrap_content"
     90                 android:layout_height="wrap_content"
     91                 android:text="RadioButton" />
     92         </RadioGroup>
     93 
     94         <RadioGroup
     95             android:id="@+id/radioGroup1"
     96             android:layout_width="wrap_content"
     97             android:layout_height="wrap_content" >
     98 
     99             <RadioButton
    100                 android:id="@+id/radio3"
    101                 android:layout_width="wrap_content"
    102                 android:layout_height="wrap_content"
    103                 android:checked="true"
    104                 android:text="RadioButton" />
    105 
    106             <RadioButton
    107                 android:id="@+id/radio4"
    108                 android:layout_width="wrap_content"
    109                 android:layout_height="wrap_content"
    110                 android:text="RadioButton" />
    111 
    112             <RadioButton
    113                 android:id="@+id/radio5"
    114                 android:layout_width="wrap_content"
    115                 android:layout_height="wrap_content"
    116                 android:text="RadioButton" />
    117         </RadioGroup>
    118     </LinearLayout>
    119 
    120 </ScrollView>
    aty_using_scrollview.xml

    12. RatingBar

      RatingBarSeekBarProgressBar的扩展,用星星来评级,使用的默认大小RatingBar时,用户可以触摸/拖动或使用键来设置评分,它有大小两种样式,其中大的只适合指示,不适合于用户交互。

     1 package com.example.uiconrrol;
     2 
     3 import android.app.Activity;
     4 import android.os.Bundle;
     5 import android.widget.RatingBar;
     6 import android.widget.Toast;
     7 
     8 public class AtyUsingRatingBar extends Activity {
     9 
    10     private RatingBar ratingBar;
    11 
    12     @Override
    13     protected void onCreate(Bundle savedInstanceState) {
    14         super.onCreate(savedInstanceState);
    15         setContentView(R.layout.aty_using_ratingbar);
    16 
    17         ratingBar = (RatingBar) findViewById(R.id.ratingBar);
    18         ratingBar
    19                 .setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
    20 
    21                     @Override
    22                     public void onRatingChanged(RatingBar ratingBar,
    23                             float rating, boolean fromUser) {
    24                         Toast.makeText(AtyUsingRatingBar.this,
    25                                 "评价为: " + rating, Toast.LENGTH_SHORT).show();
    26                     }
    27                 });
    28     }
    29 }
    AtyUsingRatingBar
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical" >
     6 
     7     <RatingBar
     8         android:id="@+id/ratingBar"
     9         android:layout_width="wrap_content"
    10         android:layout_height="wrap_content" />
    11 
    12 </LinearLayout>
    aty_using_ratingbar.xml

     

  • 相关阅读:
    XML基础(二)
    XML基础(一)
    转载:数据库应用开发工具Toad使用笔记
    Oracle数据库获取一行记录中某几个字段的最大值/最小值函数
    设置Android让EditText不自动获取焦点
    android TextView selector点击样式改变
    Jenkins build java app under redhat
    Yum
    git windows
    jenkins redhat installation using war file .
  • 原文地址:https://www.cnblogs.com/510602159-Yano/p/4065157.html
Copyright © 2020-2023  润新知