Android开发之《Android应用开发揭秘》UI事件汇总

/*

* Android开发之《Android应用开发揭秘》UI事件汇总

* 北京Android俱乐部群:167839253

* Created on: 2011-12-01

* Author: blueeagle

* Email: liujiaxiang@gmail.com

*/

思想跑毛是很可怕的,最近去尝试了下创业,结果碰了一鼻子灰,公司乱七八糟的项目搞的焦头烂额。各种没有心情。还好,现在沉淀下来,继续android开发的征程。

以下是Android应用开发揭秘这本书第四章的关于UI的事件处理的总结。基本上都是可以复用的代码。存着日后方便。

1.EditView控件的setOnKeyListener方法。点击上下左右键或者中间键的时候可以出发该方法。代码如下。

view plain copy to clipboard print ?
  1. myEditView.setOnKeyListener(newEditText.OnKeyListener(){
  2. @Override
  3. publicbooleanonKey(Viewv,intkeyCode,KeyEventevent){
  4. myTextView.setText("文本框中内容是:"+myEditView.getText().toString());
  5. returnfalse;//TODOAuto-generatedmethodstub
  6. }
  7. });
myEditView.setOnKeyListener(new EditText.OnKeyListener(){ @Override public boolean onKey(View v, int keyCode, KeyEvent event) { myTextView.setText("文本框中内容是:"+myEditView.getText().toString()); return false;// TODO Auto-generated method stub } });

2.RadioButton控件和RadioGroup控件的组合使用,代码如下:

view plain copy to clipboard print ?
  1. myRadioGroup.setOnCheckedChangeListener(newRadioGroup.OnCheckedChangeListener(){
  2. @Override
  3. publicvoidonCheckedChanged(RadioGroupgroup,intcheckedId){
  4. //TODOAuto-generatedmethodstub
  5. if(checkedId==myRadioButton3.getId())
  6. {
  7. DisplayToast("正确答案:"+myRadioButton3.getText()+"恭喜你回答正确");
  8. }
  9. else
  10. {
  11. DisplayToast("回答错误");
  12. }
  13. }
  14. );
myRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { // TODO Auto-generated method stub if(checkedId == myRadioButton3.getId()) { DisplayToast("正确答案:"+myRadioButton3.getText()+"恭喜你回答正确"); } else { DisplayToast("回答错误"); } } });


3.CheckBox控件的使用,代码如下:

view plain copy to clipboard print ?
  1. myCheckBox1.setOnCheckedChangeListener(newCheckBox.OnCheckedChangeListener(){
  2. @Override
  3. publicvoidonCheckedChanged(CompoundButtonbuttonView,
  4. booleanisChecked){
  5. //TODOAuto-generatedmethodstub
  6. if(myCheckBox1.isChecked()){
  7. DisplayToast("你选择了:"+myCheckBox1.getText());
  8. }
  9. }
  10. });
myCheckBox1.setOnCheckedChangeListener(new CheckBox.OnCheckedChangeListener(){ @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { // TODO Auto-generated method stub if(myCheckBox1.isChecked()){ DisplayToast("你选择了:"+myCheckBox1.getText()); } } });

4.Button控件的使用,代码如下:

view plain copy to clipboard print ?
  1. myButton1.setOnClickListener(newButton.OnClickListener(){
  2. @Override
  3. publicvoidonClick(Viewv){
  4. }
  5. });
myButton1.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View v) { } });


4.Spinner控件的使用,代码如下:

view plain copy to clipboard print ?
  1. //Spinner控件需要跟ArrayAdapter绑定使用。
  2. privatestaticfinalString[]m_Countries={"A型","B型","O型","AB型","未知类型"};
  3. privateSpinnermySpinner;
  4. privateArrayAdapter<String>myAdapter;
  5. mySpinner=(Spinner)findViewById(R.id.mySpinner1);
  6. myAdapter=newArrayAdapter<String>(this,android.R.layout.simple_spinner_item,m_Countries);
  7. //设置下拉列表风格
  8. myAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  9. //将adapter添加到mySpinner中
  10. mySpinner.setAdapter(myAdapter);
  11. //添加事件监听
  12. mySpinner.setOnItemSelectedListener(newSpinner.OnItemSelectedListener(){
  13. @Override
  14. publicvoidonItemSelected(AdapterView<?>arg0,Viewarg1,
  15. intarg2,longarg3){
  16. //TODOAuto-generatedmethodstub
  17. myTextView.setText("你的血型是"+m_Countries[arg2]);
  18. arg0.setVisibility(View.VISIBLE);
  19. }
  20. @Override
  21. publicvoidonNothingSelected(AdapterView<?>arg0){
  22. //TODOAuto-generatedmethodstub
  23. DisplayToast("你什么也没选!");
  24. }
  25. });
//Spinner控件需要跟ArrayAdapter绑定使用。 private static final String[] m_Countries = {"A型","B型","O型","AB型","未知类型"}; private Spinner mySpinner; private ArrayAdapter<String> myAdapter; mySpinner = (Spinner)findViewById(R.id.mySpinner1); myAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,m_Countries); //设置下拉列表风格 myAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //将adapter添加到mySpinner中 mySpinner.setAdapter(myAdapter); //添加事件监听 mySpinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){ @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub myTextView.setText("你的血型是"+ m_Countries[arg2]); arg0.setVisibility(View.VISIBLE); } @Override public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub DisplayToast("你什么也没选!"); } });

5.AutoCompleteTextView的使用,代码如下:

view plain copy to clipboard print ?
  1. privatestaticfinalString[]autoString={"abcd1","abcd212","32123","32open","32add","android","windows","iphone","linux","mydirve","msnbmw","wocaonimalegebi"};
  2. privateArrayAdapter<String>myAdapter1;
  3. privateAutoCompleteTextViewmyAutoCompleteTextView;
  4. myAdapter1=newArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,autoString);
  5. myAutoCompleteTextView=(AutoCompleteTextView)findViewById(R.id.myAutoCompleteTextView);
  6. myAutoCompleteTextView.setAdapter(myAdapter1);
  7. 6.DatePicker、TimePicker以及Button的使用,代码如下:
  8. myCalendar1=Calendar.getInstance();
  9. myTextView=(TextView)findViewById(R.id.myTextView);
  10. myDatePicker=(DatePicker)findViewById(R.id.datePicker1);
  11. myTimePicker=(TimePicker)findViewById(R.id.timePicker1);
  12. myButton1=(Button)findViewById(R.id.button1);
  13. myButton2=(Button)findViewById(R.id.button2);
  14. //将日历初始化为当前系统时间,并设置其事件监听
  15. myDatePicker.init(myCalendar1.get(Calendar.YEAR),myCalendar1.get(Calendar.MONTH),myCalendar1.get(Calendar.DAY_OF_MONTH),newDatePicker.OnDateChangedListener(){
  16. @Override
  17. publicvoidonDateChanged(DatePickerview,intyear,intmonthOfYear,
  18. intdayOfMonth){
  19. //当日期更改时,在这里处理。
  20. //myCalendar1.set(year,month,day);
  21. }
  22. });
  23. //获取TimePicker对象设置为24小时显示。
  24. myTimePicker.setIs24HourView(true);
  25. //监听时间改变
  26. myTimePicker.setOnTimeChangedListener(newTimePicker.OnTimeChangedListener(){
  27. @Override
  28. publicvoidonTimeChanged(TimePickerview,inthourOfDay,intminute){
  29. //TODOAuto-generatedmethodstub
  30. //当时间改变时,在这里处理。
  31. //myCalendar1.set(year,month,day,hourOfDay,minute);
  32. }
  33. });
  34. //-----------按钮事件---------//
  35. myButton1.setOnClickListener(newButton.OnClickListener(){
  36. @Override
  37. publicvoidonClick(Viewv){
  38. //下面的NEW是新建了一个调整日历的对话框
  39. newDatePickerDialog(AndroidUnleashed001Activity.this,newDatePickerDialog.OnDateSetListener(){
  40. @Override
  41. publicvoidonDateSet(DatePickerview,intyear,
  42. intmonthOfYear,intdayOfMonth){
  43. //TODOAuto-generatedmethodstub
  44. //设置日历
  45. }
  46. },myCalendar1.get(Calendar.YEAR),myCalendar1.get(Calendar.MONTH),myCalendar1.get(Calendar.DAY_OF_MONTH)).show();
  47. }
  48. });
  49. myButton2.setOnClickListener(newButton.OnClickListener(){
  50. @Override
  51. publicvoidonClick(Viewv){
  52. //下面的NEW是新建了一个调整时间的对话框
  53. newTimePickerDialog(AndroidUnleashed001Activity.this,newTimePickerDialog.OnTimeSetListener(){
  54. @Override
  55. publicvoidonTimeSet(TimePickerview,inthourOfDay,intminute){
  56. //TODOAuto-generatedmethodstub
  57. }
  58. },myCalendar1.get(Calendar.HOUR_OF_DAY),myCalendar1.get(Calendar.MINUTE),true).show();
  59. }
  60. });
  61. }
private static final String[] autoString = {"abcd1","abcd212","32123","32open","32add","android","windows","iphone","linux","mydirve","msnbmw","wocaonimalegebi"}; private ArrayAdapter<String> myAdapter1; private AutoCompleteTextView myAutoCompleteTextView; myAdapter1 = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,autoString); myAutoCompleteTextView = (AutoCompleteTextView)findViewById(R.id.myAutoCompleteTextView); myAutoCompleteTextView.setAdapter(myAdapter1); 6.DatePicker、TimePicker以及Button的使用,代码如下: myCalendar1 = Calendar.getInstance(); myTextView = (TextView)findViewById(R.id.myTextView); myDatePicker = (DatePicker)findViewById(R.id.datePicker1); myTimePicker = (TimePicker)findViewById(R.id.timePicker1); myButton1 = (Button)findViewById(R.id.button1); myButton2 = (Button)findViewById(R.id.button2); //将日历初始化为当前系统时间,并设置其事件监听 myDatePicker.init(myCalendar1.get(Calendar.YEAR), myCalendar1.get(Calendar.MONTH), myCalendar1.get(Calendar.DAY_OF_MONTH), new DatePicker.OnDateChangedListener() { @Override public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) { // 当日期更改时,在这里处理。 // myCalendar1.set(year, month, day); } }); //获取TimePicker对象设置为24小时显示。 myTimePicker.setIs24HourView(true); //监听时间改变 myTimePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() { @Override public void onTimeChanged(TimePicker view, int hourOfDay, int minute) { // TODO Auto-generated method stub // 当时间改变时,在这里处理。 //myCalendar1.set(year, month, day, hourOfDay, minute); } }); //-----------按钮事件---------// myButton1.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View v) { // 下面的NEW 是新建了一个调整日历的对话框 new DatePickerDialog(AndroidUnleashed001Activity.this,new DatePickerDialog.OnDateSetListener(){ @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { // TODO Auto-generated method stub //设置日历 } },myCalendar1.get(Calendar.YEAR),myCalendar1.get(Calendar.MONTH), myCalendar1.get(Calendar.DAY_OF_MONTH)).show(); } }); myButton2.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View v) { //下面的NEW 是新建了一个调整时间的对话框 new TimePickerDialog(AndroidUnleashed001Activity.this, new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { // TODO Auto-generated method stub } }, myCalendar1.get(Calendar.HOUR_OF_DAY), myCalendar1.get(Calendar.MINUTE),true).show(); } }); }


7.Menu的使用,代码如下:

1.XML方式实现

XML代码可以写成:

view plain copy to clipboard print ?
  1. <menuxmlns:android="http://schemas.android.com/apk/res/android">
  2. <itemandroid:id="@+id/style_submenu"android:title="笔迹样式">
  3. <menu>
  4. <groupandroid:id="@+id/style_group"android:checkableBehavior="single">
  5. <itemandroid:id="@+id/style"android:orderInCategory="1"android:title="铅笔"/>
  6. <itemandroid:id="@+id/style"android:orderInCategory="2"android:title="钢笔"/>
  7. <itemandroid:id="@+id/style"android:orderInCategory="3"android:title="毛笔"/>
  8. </group>
  9. </menu>
  10. </item>
  11. <itemandroid:id="@+id/color_submenu"android:title="笔迹颜色">
  12. <menu>
  13. <groupandroid:id="@+id/color_group"android:checkableBehavior="single">
  14. <itemandroid:id="@+id/color"android:orderInCategory="0"android:title="蓝色"/>
  15. <itemandroid:id="@+id/color"android:orderInCategory="1"android:title="绿色"/>
  16. <itemandroid:id="@+id/color"android:orderInCategory="2"android:title="青色"/>
  17. <itemandroid:id="@+id/color"android:orderInCategory="3"android:title="红色"/>
  18. </group>
  19. </menu>
  20. </item>
  21. <itemandroid:id="@+id/width_submenu"android:title="笔迹粗细">
  22. <menu>
  23. <groupandroid:id="@+id/width_group"android:checkableBehavior="single">
  24. <itemandroid:id="@+id/width"android:orderInCategory="1"android:title="较细"/>
  25. <itemandroid:id="@+id/width"android:orderInCategory="2"android:title="细"/>
  26. <itemandroid:id="@+id/width"android:orderInCategory="3"android:title="中等"/>
  27. <itemandroid:id="@+id/width"android:orderInCategory="4"android:title="粗"/>
  28. <itemandroid:id="@+id/width"android:orderInCategory="5"android:title="较粗"/>
  29. </group>
  30. </menu>
  31. </item>
  32. <itemandroid:id="@+id/write"android:title="书写"/>
  33. <itemandroid:id="@+id/erase"android:title="清除"/>
  34. <itemandroid:id="@+id/clear"android:title="清屏"/>
  35. </menu>
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/style_submenu" android:title="笔迹样式"> <menu> <group android:id="@+id/style_group" android:checkableBehavior="single"> <item android:id="@+id/style" android:orderInCategory="1" android:title="铅笔" /> <item android:id="@+id/style" android:orderInCategory="2" android:title="钢笔" /> <item android:id="@+id/style" android:orderInCategory="3" android:title="毛笔" /> </group> </menu> </item> <item android:id="@+id/color_submenu" android:title="笔迹颜色"> <menu> <group android:id="@+id/color_group" android:checkableBehavior="single"> <item android:id="@+id/color" android:orderInCategory="0" android:title="蓝色" /> <item android:id="@+id/color" android:orderInCategory="1" android:title="绿色" /> <item android:id="@+id/color" android:orderInCategory="2" android:title="青色" /> <item android:id="@+id/color" android:orderInCategory="3" android:title="红色" /> </group> </menu> </item> <item android:id="@+id/width_submenu" android:title="笔迹粗细"> <menu> <group android:id="@+id/width_group" android:checkableBehavior="single"> <item android:id="@+id/width" android:orderInCategory="1" android:title="较细" /> <item android:id="@+id/width" android:orderInCategory="2" android:title="细" /> <item android:id="@+id/width" android:orderInCategory="3" android:title="中等" /> <item android:id="@+id/width" android:orderInCategory="4" android:title="粗" /> <item android:id="@+id/width" android:orderInCategory="5" android:title="较粗" /> </group> </menu> </item> <item android:id="@+id/write" android:title="书写" /> <item android:id="@+id/erase" android:title="清除" /> <item android:id="@+id/clear" android:title="清屏" /> </menu>


JAVA代码:

view plain copy to clipboard print ?
  1. @Override
  2. publicbooleanonCreateOptionsMenu(Menumenu){
  3. MenuInflaterinflater=getMenuInflater();
  4. inflater.inflate(R.menu.menu,menu);
  5. returntrue;
  6. }
  7. @Override
  8. publicbooleanonOptionsItemSelected(MenuItemitem){
  9. intitem_id=item.getItemId();
  10. switch(item_id)
  11. {
  12. caseR.id.about1:
  13. Intentintent=newIntent();
  14. intent.setClass(AndroidUnleashed001Activity.this,Activity02.class);
  15. startActivity(intent);
  16. AndroidUnleashed001Activity.this.finish();
  17. break;
  18. caseR.id.about2:
  19. AndroidUnleashed001Activity.this.finish();
  20. break;
  21. }
  22. returntrue;
  23. }
  24. .Menu.add方法实现
  25. publicbooleanonCreateOptionsMenu(Menumenu){
  26. //MenuInflaterinflater=getMenuInflater();
  27. //inflater.inflate(R.menu.menu,menu);
  28. menu.add(0,0,0,R.string.app_name);
  29. menu.add(0,1,1,R.string.hello);
  30. returntrue;
  31. }
@Override public boolean onCreateOptionsMenu(Menu menu){ MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item){ int item_id = item.getItemId(); switch (item_id) { case R.id.about1: Intent intent = new Intent(); intent.setClass(AndroidUnleashed001Activity.this, Activity02.class); startActivity(intent); AndroidUnleashed001Activity.this.finish(); break; case R.id.about2: AndroidUnleashed001Activity.this.finish(); break; } return true; } 1.Menu.add方法实现 public boolean onCreateOptionsMenu(Menu menu){ //MenuInflater inflater = getMenuInflater(); //inflater.inflate(R.menu.menu, menu); menu.add(0,0,0,R.string.app_name); menu.add(0,1,1,R.string.hello); return true; }

8.弹出对话框的使用,代码如下:

这个功能为弹出对话框,点击确定后弹出登录对话框,然后点击登录后弹出多线程对话框。

view plain copy to clipboard print ?
  1. Dialogdialog=newAlertDialog.Builder(AndroidUnleashed001Activity.this).setTitle("登录提示").setMessage("这里需要登录").setPositiveButton("确定",newDialogInterface.OnClickListener(){
  2. @Override
  3. publicvoidonClick(DialogInterfacedialog,intwhich){
  4. //点击确定转向登陆框
  5. LayoutInflaterfactory=LayoutInflater.from(AndroidUnleashed001Activity.this);
  6. //得到自定义对话框
  7. finalViewDialogView=factory.inflate(R.layout.pop,null);
  8. //创建对话框
  9. AlertDialogdlg=newAlertDialog.Builder(AndroidUnleashed001Activity.this).setTitle("登录框").setView(DialogView).setPositiveButton("确定",newDialogInterface.OnClickListener(){
  10. privateProgressDialogmyProgressDialog;
  11. @Override
  12. publicvoidonClick(DialogInterfacedialog,intwhich){
  13. //当输入完成后,点击确定开始登录。
  14. myProgressDialog=ProgressDialog.show(AndroidUnleashed001Activity.this,"请等待","正在为您登陆",true);
  15. newThread(){
  16. publicvoidrun(){
  17. try{
  18. sleep(3000);
  19. }
  20. catch(Exceptione){
  21. e.printStackTrace();
  22. }
  23. finally{
  24. myProgressDialog.dismiss();
  25. }
  26. }
  27. }.start();
  28. }
  29. }).setNegativeButton("取消",newDialogInterface.OnClickListener(){
  30. @Override
  31. publicvoidonClick(DialogInterfacedialog,intwhich){
  32. //TODOAuto-generatedmethodstub
  33. AndroidUnleashed001Activity.this.finish();
  34. }
  35. }).create();
  36. dlg.show();
  37. }
  38. }).setNegativeButton("退出",newDialogInterface.OnClickListener(){
  39. @Override
  40. publicvoidonClick(DialogInterfacedialog,intwhich){
  41. //TODOAuto-generatedmethodstub
  42. AndroidUnleashed001Activity.this.finish();
  43. }
  44. }).create();
  45. dialog.show();
Dialog dialog = new AlertDialog.Builder(AndroidUnleashed001Activity.this).setTitle("登录提示").setMessage("这里需要登录").setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 点击确定转向登陆框 LayoutInflater factory = LayoutInflater.from(AndroidUnleashed001Activity.this); //得到自定义对话框 final View DialogView = factory.inflate(R.layout.pop, null); //创建对话框 AlertDialog dlg = new AlertDialog.Builder(AndroidUnleashed001Activity.this).setTitle("登录框").setView(DialogView).setPositiveButton("确定", new DialogInterface.OnClickListener() { private ProgressDialog myProgressDialog; @Override public void onClick(DialogInterface dialog, int which) { // 当输入完成后,点击确定开始登录。 myProgressDialog = ProgressDialog.show(AndroidUnleashed001Activity.this, "请等待", "正在为您登陆",true); new Thread(){ public void run(){ try{ sleep(3000); } catch(Exception e){ e.printStackTrace(); } finally{ myProgressDialog.dismiss(); } } }.start(); } }).setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub AndroidUnleashed001Activity.this.finish(); } }).create(); dlg.show(); } }).setNegativeButton("退出", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub AndroidUnleashed001Activity.this.finish(); } }).create(); dialog.show();


9.ImageView的使用,代码如下:

view plain copy to clipboard print ?
  1. myImageButton1.setImageDrawable(getResources().getDrawable(R.drawable.logo2));
  2. myImageButton1.setOnClickListener(newButton.OnClickListener(){
  3. @Override
  4. publicvoidonClick(Viewv){
  5. //TODOAuto-generatedmethodstub
  6. Dialogmydialog=newAlertDialog.Builder(AndroidUnleashed003Activity.this).setTitle("提示")
  7. .setMessage("我是ImageButton1").setPositiveButton("确定",newDialogInterface.OnClickListener(){
  8. @Override
  9. publicvoidonClick(DialogInterfacedialog,intwhich){
  10. //TODOAuto-generatedmethodstub
  11. }
  12. }).create();
  13. mydialog.show();
  14. }
  15. });
myImageButton1.setImageDrawable(getResources().getDrawable(R.drawable.logo2)); myImageButton1.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub Dialog mydialog = new AlertDialog.Builder(AndroidUnleashed003Activity.this).setTitle("提示") .setMessage("我是ImageButton1").setPositiveButton("确定",new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }).create(); mydialog.show(); } });

注意:如果要去掉ImageButton后面的背景色,使得ImageButton看起来更漂亮一些而不是有个边,则需要做:在XML文件中的属性里添加:“android:background="#00000000"”

10.Gallery的使用,拖动效果很炫,代码如下:

view plain copy to clipboard print ?
  1. GallerymyGallery=(Gallery)findViewById(R.id.myGallery);
  2. //添加ImageAdapter给Gallery对象
  3. myGallery.setAdapter(newImageAdapter(this));
  4. myGallery.setBackgroundResource(R.drawable.background);
  5. myGallery.setOnItemClickListener(newOnItemClickListener(){
  6. @Override
  7. publicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intarg2,
  8. longarg3){
  9. //TODOAuto-generatedmethodstub
  10. Toast.makeText(AndroidUnleashed003Activity.this,"你选择了"+(arg2+1)+"号图片",Toast.LENGTH_SHORT).show();
  11. }
  12. });
  13. }
  14. //另外,需要存放图片,存放图片的容器,需要使用一个类实现,这个类是ImageAdapter,继承于BaseAdapter。
  15. publicclassImageAdapterextendsBaseAdapter{
  16. privateContextmyContext;
  17. privateInteger[]mImageIds={
  18. R.drawable.ic_launcher,
  19. R.drawable.icon,
  20. R.drawable.logo,
  21. R.drawable.logo2,
  22. R.drawable.logo,
  23. R.drawable.ic_launcher,
  24. R.drawable.icon,
  25. R.drawable.logo,
  26. };
  27. publicImageAdapter(Contextc){
  28. myContext=c;
  29. }
  30. @Override
  31. //获取图片的个数
  32. publicintgetCount(){
  33. //TODOAuto-generatedmethodstub
  34. returnmImageIds.length;
  35. }
  36. @Override
  37. //获取图片在库中的位置
  38. publicObjectgetItem(intarg0){
  39. //TODOAuto-generatedmethodstub
  40. returnarg0;
  41. }
  42. @Override
  43. //获取图片在库中的位置
  44. publiclonggetItemId(intarg0){
  45. //TODOAuto-generatedmethodstub
  46. returnarg0;
  47. }
  48. @Override
  49. publicViewgetView(intposition,Viewarg1,ViewGrouparg2){
  50. //TODOAuto-generatedmethodstub
  51. //returnnull;
  52. ImageViewmyImageView=newImageView(myContext);
  53. //给ImageView设置资源
  54. myImageView.setImageResource(mImageIds[position]);
  55. //设置布局图片以120*120显示
  56. //myImageView.setLayoutParams(newGallery.LayoutParams(120,120));
  57. //设置显示比例类型
  58. //myImageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
  59. returnmyImageView;
  60. }
  61. }
Gallery myGallery = (Gallery)findViewById(R.id.myGallery); //添加ImageAdapter给Gallery对象 myGallery.setAdapter(new ImageAdapter(this)); myGallery.setBackgroundResource(R.drawable.background); myGallery.setOnItemClickListener(new OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub Toast.makeText(AndroidUnleashed003Activity.this, "你选择了"+(arg2+1)+" 号图片 ", Toast.LENGTH_SHORT).show(); } }); } //另外,需要存放图片,存放图片的容器,需要使用一个类实现,这个类是ImageAdapter,继承于BaseAdapter。 public class ImageAdapter extends BaseAdapter{ private Context myContext; private Integer[] mImageIds = { R.drawable.ic_launcher, R.drawable.icon, R.drawable.logo, R.drawable.logo2, R.drawable.logo, R.drawable.ic_launcher, R.drawable.icon, R.drawable.logo, }; public ImageAdapter(Context c){ myContext = c; } @Override //获取图片的个数 public int getCount() { // TODO Auto-generated method stub return mImageIds.length; } @Override //获取图片在库中的位置 public Object getItem(int arg0) { // TODO Auto-generated method stub return arg0; } @Override //获取图片在库中的位置 public long getItemId(int arg0) { // TODO Auto-generated method stub return arg0; } @Override public View getView(int position, View arg1, ViewGroup arg2) { // TODO Auto-generated method stub //return null; ImageView myImageView = new ImageView(myContext); //给ImageView设置资源 myImageView.setImageResource(mImageIds[position]); //设置布局图片以120*120显示 //myImageView.setLayoutParams(new Gallery.LayoutParams(120,120)); //设置显示比例类型 //myImageView.setScaleType(ImageView.ScaleType.FIT_CENTER); return myImageView; } }

11.ImageSwitcher的使用,代码如下:

view plain copy to clipboard print ?
  1. //首先需要实现接口:
  2. extendsActivityimplementsOnClickListener,ViewFactory
  3. //具体操作:
  4. LinearLayoutmyMainView=newLinearLayout(this);
  5. //创建ImageSwitcher对象
  6. mySwitcher=newImageSwitcher(this);
  7. myMainView.addView(mySwitcher);
  8. mySwitcher.setId(BUTTON_SWITCHER_ID);
  9. mySwitcher.setFactory(this);
  10. mySwitcher.setImageResource(mImageIds[index]);
  11. setContentView(myMainView);
  12. Buttonnext=newButton(this);
  13. next.setId(BUTTON_DOWN_ID);
  14. next.setText("下一张");
  15. next.setOnClickListener(this);
  16. //LinearLayout.LayoutParamsparam=newLinearLayout.LayoutParams(200,200);
  17. myMainView.addView(next);
  18. Buttonpre=newButton(this);
  19. pre.setId(BUTTON_UP_ID);
  20. pre.setText("上一张");
  21. pre.setOnClickListener(this);
  22. myMainView.addView(pre);
  23. }
  24. privateImageSwitchermySwitcher;
  25. privatestaticintindex=0;
  26. //上一页,下一页的按钮索引和Switcher的对象ID
  27. privatestaticfinalintBUTTON_DOWN_ID=0x123456;
  28. privatestaticfinalintBUTTON_UP_ID=0x123457;
  29. privatestaticfinalintBUTTON_SWITCHER_ID=0x123458;
  30. //实现OnClickListener接口的函数
  31. @Override
  32. publicvoidonClick(Viewv){
  33. //TODOAuto-generatedmethodstub
  34. switch(v.getId()){
  35. caseBUTTON_DOWN_ID:
  36. index++;
  37. if(index>=mImageIds.length){
  38. index=0;
  39. }
  40. mySwitcher.setImageResource(mImageIds[index]);
  41. break;
  42. caseBUTTON_UP_ID:
  43. index--;
  44. if(index<0){
  45. index=mImageIds.length-1;
  46. }
  47. mySwitcher.setImageResource(mImageIds[index]);
  48. break;
  49. default:
  50. break;
  51. }
  52. }
  53. //实现View.Factory接口的函数
  54. @Override
  55. publicViewmakeView(){
  56. //TODOAuto-generatedmethodstub
  57. returnnewImageView(this);
  58. }
//首先需要实现接口: extends Activity implements OnClickListener,ViewFactory //具体操作: LinearLayout myMainView = new LinearLayout(this); //创建ImageSwitcher对象 mySwitcher = new ImageSwitcher(this); myMainView.addView(mySwitcher); mySwitcher.setId(BUTTON_SWITCHER_ID); mySwitcher.setFactory(this); mySwitcher.setImageResource(mImageIds[index]); setContentView(myMainView); Button next = new Button(this); next.setId(BUTTON_DOWN_ID); next.setText("下一张"); next.setOnClickListener(this); //LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(200,200); myMainView.addView(next); Button pre = new Button(this); pre.setId(BUTTON_UP_ID); pre.setText("上一张"); pre.setOnClickListener(this); myMainView.addView(pre); } private ImageSwitcher mySwitcher; private static int index = 0; //上一页,下一页的按钮索引和Switcher的对象ID private static final int BUTTON_DOWN_ID = 0x123456; private static final int BUTTON_UP_ID = 0x123457; private static final int BUTTON_SWITCHER_ID = 0x123458; //实现OnClickListener接口的函数 @Override public void onClick(View v) { // TODO Auto-generated method stub switch(v.getId()){ case BUTTON_DOWN_ID: index++; if(index>= mImageIds.length){ index = 0; } mySwitcher.setImageResource(mImageIds[index]); break; case BUTTON_UP_ID: index--; if(index<0){ index = mImageIds.length-1; } mySwitcher.setImageResource(mImageIds[index]); break; default: break; } } //实现View.Factory接口的函数 @Override public View makeView() { // TODO Auto-generated method stub return new ImageView(this); }

12.GridView的使用,代码如下:

view plain copy to clipboard print ?
  1. //这个和Gallery的使用相似,也需要存图片在BaseAdapter中。
  2. GridViewmyGridView=(GridView)findViewById(R.id.gridView1);
  3. myGridView.setAdapter(newImageAdapter(this));
  4. myGridView.setBackgroundResource(R.drawable.background);
  5. myGridView.setOnItemClickListener(newOnItemClickListener(){
  6. @Override
  7. publicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intarg2,
  8. longarg3){
  9. //TODOAuto-generatedmethodstub
  10. Toast.makeText(AndroidUnleashed003Activity.this,"你选择了"+(arg2+1)+"号图片",Toast.LENGTH_SHORT).show();
  11. }
  12. });
  13. }
//这个和Gallery的使用相似,也需要存图片在BaseAdapter中。 GridView myGridView = (GridView)findViewById(R.id.gridView1); myGridView.setAdapter(new ImageAdapter(this)); myGridView.setBackgroundResource(R.drawable.background); myGridView.setOnItemClickListener(new OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub Toast.makeText(AndroidUnleashed003Activity.this, "你选择了"+(arg2+1)+" 号图片 ", Toast.LENGTH_SHORT).show(); } }); }

12.ScrollView的使用,代码如下:

view plain copy to clipboard print ?
  1. //要垂直滚动,使用ScrollView要水平滚动使用HorizontalScrollView。
  2. myLayout=(LinearLayout)findViewById(R.id.myLayout);
  3. myScllorView=(ScrollView)findViewById(R.id.myScrollView);
  4. ButtonmyButton=(Button)findViewById(R.id.myButton);
  5. myButton.setOnClickListener(newButton.OnClickListener(){
  6. privateintmIndex=-1;
  7. @Override
  8. publicvoidonClick(Viewv){
  9. //TODOAuto-generatedmethodstub
  10. TextViewmyTextView=newTextView(ScrollerViewActivity.this);
  11. myTextView.setText("TextView"+mIndex);
  12. LinearLayout.LayoutParamsp=newLinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);
  13. //增加一个TextView到现行布局中
  14. myLayout.addView(myTextView,p);
  15. ButtonmyButtonView=newButton(ScrollerViewActivity.this);
  16. myButtonView.setText("Button"+mIndex++);
  17. //增加一个Button到线性布局中
  18. myLayout.addView(myButtonView,p);
  19. //改变默认焦点切换
  20. //myButtonView.setOnKeyListener(newButtonKeyListener);
  21. //投递一个消息进行滚动
  22. //myHandler.post(myScolltoBottom);
  23. }
  24. });
  25. }
//要垂直滚动,使用ScrollView要水平滚动使用HorizontalScrollView。 myLayout = (LinearLayout)findViewById(R.id.myLayout); myScllorView = (ScrollView)findViewById(R.id.myScrollView); Button myButton = (Button)findViewById(R.id.myButton); myButton.setOnClickListener(new Button.OnClickListener(){ private int mIndex = -1; @Override public void onClick(View v) { // TODO Auto-generated method stub TextView myTextView = new TextView(ScrollerViewActivity.this); myTextView.setText("Text View"+mIndex); LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); //增加一个TextView到现行布局中 myLayout.addView(myTextView,p); Button myButtonView = new Button(ScrollerViewActivity.this); myButtonView.setText("Button "+mIndex++); //增加一个Button到线性布局中 myLayout.addView(myButtonView,p); //改变默认焦点切换 //myButtonView.setOnKeyListener(newButtonKeyListener); //投递一个消息进行滚动 //myHandler.post(myScolltoBottom); } }); }

13.ProgressBar的使用,代码如下:

ProgressBarStyleHorizontal(长形进度条)

ProgressBarStyleLarge(圆形进度条)

view plain copy to clipboard print ?
  1. publicclassProgressBarAextendsActivity{
  2. protectedstaticfinalintGUI_STOP_NOTIFIER=0x108;
  3. protectedstaticfinalintGUI_THREADING_NOTIFIER=0x109;
  4. privateProgressBarmyProgress1;
  5. privateProgressBarmyProgress2;
  6. privateButtonmyButton;
  7. privateintintCounter;
  8. /**Calledwhentheactivityisfirstcreated.*/
  9. @Override
  10. publicvoidonCreate(BundlesavedInstanceState){
  11. super.onCreate(savedInstanceState);
  12. //设置窗口模式,因为需要显示进度条在标题栏
  13. requestWindowFeature(Window.FEATURE_PROGRESS);
  14. setProgressBarVisibility(true);
  15. setContentView(R.layout.main);
  16. //取得ProgressBar
  17. myProgress1=(ProgressBar)findViewById(R.id.myProgressBar01);
  18. myProgress2=(ProgressBar)findViewById(R.id.myProgressBar02);
  19. myButton=(Button)findViewById(R.id.myButton);
  20. myProgress1.setIndeterminate(false);
  21. myProgress2.setIndeterminate(false);
  22. myButton.setOnClickListener(newButton.OnClickListener(){
  23. @Override
  24. publicvoidonClick(Viewv){
  25. //TODOAuto-generatedmethodstub
  26. myProgress1.setVisibility(View.VISIBLE);
  27. myProgress2.setVisibility(View.VISIBLE);
  28. myProgress1.setMax(100);
  29. myProgress1.setProgress(0);
  30. myProgress2.setProgress(0);
  31. //通过线程来改变Progress的值
  32. newThread(newRunnable(){
  33. @Override
  34. publicvoidrun(){
  35. //TODOAuto-generatedmethodstub
  36. for(inti=0;i<10;i++){
  37. try{
  38. intCounter=(i+1)*20;
  39. Thread.sleep(1000);
  40. if(i==4){
  41. Messagem=newMessage();
  42. m.what=ProgressBarA.GUI_STOP_NOTIFIER;
  43. ProgressBarA.this.myMessageHandler.sendMessage(m);
  44. break;
  45. }
  46. else{
  47. Messagem=newMessage();
  48. m.what=ProgressBarA.GUI_THREADING_NOTIFIER;
  49. ProgressBarA.this.myMessageHandler.sendMessage(m);
  50. }
  51. }
  52. catch(Exceptione){
  53. e.printStackTrace();
  54. }
  55. }
  56. }
  57. }).start();
  58. }
  59. });
  60. }
  61. HandlermyMessageHandler=newHandler(){
  62. publicvoidhandleMessage(Messagemsg){
  63. switch(msg.what){
  64. caseProgressBarA.GUI_STOP_NOTIFIER:
  65. //myProgress1.setVisibility(View.GONE);
  66. //myProgress2.setVisibility(View.GONE);
  67. //Thread.currentThread().interrupt();
  68. break;
  69. caseProgressBarA.GUI_THREADING_NOTIFIER:
  70. if(!Thread.currentThread().isInterrupted()){
  71. myProgress1.setProgress(intCounter);
  72. myProgress1.setProgress(intCounter);
  73. setProgress(intCounter*100);//设置标题栏中前景的一个进度条进度值
  74. //setSecondaryProgress(intCounter*100);//设置标题栏中后面的一个进度条进度值
  75. //Thread.currentThread().interrupt();
  76. }
  77. break;
  78. }
  79. super.handleMessage(msg);
  80. }
  81. };
  82. }
public class ProgressBarA extends Activity { protected static final int GUI_STOP_NOTIFIER = 0x108; protected static final int GUI_THREADING_NOTIFIER = 0x109; private ProgressBar myProgress1; private ProgressBar myProgress2; private Button myButton; private int intCounter; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //设置窗口模式,因为需要显示进度条在标题栏 requestWindowFeature(Window.FEATURE_PROGRESS); setProgressBarVisibility(true); setContentView(R.layout.main); //取得ProgressBar myProgress1 = (ProgressBar)findViewById(R.id.myProgressBar01); myProgress2 = (ProgressBar)findViewById(R.id.myProgressBar02); myButton = (Button)findViewById(R.id.myButton); myProgress1.setIndeterminate(false); myProgress2.setIndeterminate(false); myButton.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub myProgress1.setVisibility(View.VISIBLE); myProgress2.setVisibility(View.VISIBLE); myProgress1.setMax(100); myProgress1.setProgress(0); myProgress2.setProgress(0); //通过线程来改变Progress的值 new Thread(new Runnable(){ @Override public void run() { // TODO Auto-generated method stub for(int i=0;i<10;i++){ try{ intCounter=(i+1)*20; Thread.sleep(1000); if(i==4){ Message m = new Message(); m.what = ProgressBarA.GUI_STOP_NOTIFIER; ProgressBarA.this.myMessageHandler.sendMessage(m); break; } else{ Message m = new Message(); m.what = ProgressBarA.GUI_THREADING_NOTIFIER; ProgressBarA.this.myMessageHandler.sendMessage(m); } } catch(Exception e){ e.printStackTrace(); } } } }).start(); } }); } Handler myMessageHandler = new Handler(){ public void handleMessage(Message msg){ switch(msg.what){ case ProgressBarA.GUI_STOP_NOTIFIER: //myProgress1.setVisibility(View.GONE); //myProgress2.setVisibility(View.GONE); //Thread.currentThread().interrupt(); break; case ProgressBarA.GUI_THREADING_NOTIFIER: if(!Thread.currentThread().isInterrupted()){ myProgress1.setProgress(intCounter); myProgress1.setProgress(intCounter); setProgress(intCounter*100);//设置标题栏中前景的一个进度条进度值 //setSecondaryProgress(intCounter*100);//设置标题栏中后面的一个进度条进度值 //Thread.currentThread().interrupt(); } break; } super.handleMessage(msg); } }; }


14.SeekBar的使用,代码如下:

view plain copy to clipboard print ?
  1. implementsSeekBar.OnSeekBarChangeListener
  2. //实现OnSeekBarChangeListener接口
  3. publicvoidonProgressChanged(SeekBarseekBar,intprogress,
  4. booleanfromUser){
  5. //TODOAuto-generatedmethodstub
  6. myProgressText.setText("当前值:"+progress);
  7. }
  8. @Override
  9. publicvoidonStartTrackingTouch(SeekBarseekBar){
  10. //TODOAuto-generatedmethodstub
  11. myTrackingText.setText("正在调节");
  12. }
  13. @Override
  14. publicvoidonStopTrackingTouch(SeekBarseekBar){
  15. //TODOAuto-generatedmethodstub
  16. myTrackingText.setText("停止调节");
  17. }
  18. }
implements SeekBar.OnSeekBarChangeListener //实现OnSeekBarChangeListener接口 public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { // TODO Auto-generated method stub myProgressText.setText("当前值:"+ progress); } @Override public void onStartTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub myTrackingText.setText("正在调节"); } @Override public void onStopTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub myTrackingText.setText("停止调节"); } }

15.Notification、NotificationManager的使用,代码如下:

view plain copy to clipboard print ?
  1. myIntent=newIntent(Notification01.this,Notification02.class);
  2. //主要是设置点击通知时显示内容的类
  3. myPendingIntent=PendingIntent.getActivity(Notification01.this,0,myIntent,0);
  4. //构造Notification对象
  5. myNotification=newNotification();
  6. myButton1.setOnClickListener(newButton.OnClickListener(){
  7. @Override
  8. publicvoidonClick(Viewv){
  9. //TODOAuto-generatedmethodstub
  10. //设置通知在状态栏显示的图标
  11. myNotification.icon=R.drawable.ic_launcher;
  12. myNotification.tickerText="Button1的通知内容...";
  13. //通知时发出默认的声音
  14. myNotification.defaults=Notification.DEFAULT_SOUND;
  15. //设置通知显示的参数
  16. myNotification.setLatestEventInfo(Notification01.this,"Button1","Button1通知",myPendingIntent);
  17. //可以理解为执行这个通知
  18. myNotificationManager.notify(0,myNotification);
  19. }
  20. });
myIntent = new Intent(Notification01.this,Notification02.class); //主要是设置点击通知时显示内容的类 myPendingIntent = PendingIntent.getActivity(Notification01.this, 0, myIntent, 0); //构造Notification对象 myNotification = new Notification(); myButton1.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub //设置通知在状态栏显示的图标 myNotification.icon = R.drawable.ic_launcher; myNotification.tickerText = "Button1的通知内容..."; //通知时发出默认的声音 myNotification.defaults = Notification.DEFAULT_SOUND; //设置通知显示的参数 myNotification.setLatestEventInfo(Notification01.this,"Button1","Button1通知",myPendingIntent); //可以理解为执行这个通知 myNotificationManager.notify(0,myNotification); } });

16.ProgressDialog的使用,代码如下:

view plain copy to clipboard print ?
  1. myButton01=(Button)findViewById(R.id.Button1);
  2. myButton02=(Button)findViewById(R.id.Button2);
  3. myButton01.setOnClickListener(newButton.OnClickListener(){
  4. @Override
  5. publicvoidonClick(Viewv){
  6. //TODOAuto-generatedmethodstub
  7. //创建ProgressDialog对象
  8. myProgressDialog=newProgressDialog(ProgressDialogActivity.this);
  9. //设置进度条风格,风格为圆形的,旋转的
  10. myProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
  11. //设置ProgressDialog标题
  12. myProgressDialog.setTitle("提示");
  13. //设置ProgressDialog提示信息
  14. myProgressDialog.setMessage("这是一个圆形进度条对话框");
  15. //设置myProgressDialog标题图标
  16. myProgressDialog.setIcon(R.drawable.ic_launcher);
  17. //设置myProgressDialog的进度条是否不明确
  18. myProgressDialog.setIndeterminate(false);
  19. //设置myProgressDialog是否可以按退回键取消
  20. myProgressDialog.setCancelable(true);
  21. //设置myProgressDialog的一个Button
  22. myProgressDialog.setButton("确定",newDialogInterface.OnClickListener(){
  23. @Override
  24. publicvoidonClick(DialogInterfacedialog,intwhich){
  25. //TODOAuto-generatedmethodstub
  26. //点击确定取消对话框
  27. dialog.cancel();
  28. }
  29. });
  30. //让ProgressDialog显示
  31. myProgressDialog.show();
  32. }
  33. });
  34. myButton02.setOnClickListener(newButton.OnClickListener(){
  35. @Override
  36. publicvoidonClick(Viewv){
  37. //TODOAuto-generatedmethodstub
  38. myCount=0;
  39. //创建ProgressDialog对象
  40. myProgressDialog=newProgressDialog(ProgressDialogActivity.this);
  41. //设置进度条风格,风格为长形的。
  42. myProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
  43. //设置ProgressDialog标题
  44. myProgressDialog.setTitle("提示");
  45. //设置ProgressDialog提示信息
  46. myProgressDialog.setMessage("这是一个长形进度条对话框");
  47. //设置myProgressDialog标题图标
  48. myProgressDialog.setIcon(R.drawable.ic_launcher);
  49. //设置myProgressDialog进度条进度
  50. myProgressDialog.setProgress(100);
  51. //设置myProgressDialog的进度条是否不明确
  52. myProgressDialog.setIndeterminate(false);
  53. //设置myProgressDialog是否可以按退回键取消
  54. myProgressDialog.setCancelable(true);
  55. //设置myProgressDialog的一个Button
  56. myProgressDialog.setButton("确定",newDialogInterface.OnClickListener(){
  57. @Override
  58. publicvoidonClick(DialogInterfacedialog,intwhich){
  59. //TODOAuto-generatedmethodstub
  60. //点击确定取消对话框
  61. dialog.cancel();
  62. }
  63. });
  64. //让ProgressDialog显示
  65. myProgressDialog.show();
  66. newThread(){
  67. publicvoidrun(){
  68. try{
  69. while(myCount<=100){
  70. //由线程来控制进度
  71. myProgressDialog.setProgress(myCount++);
  72. Thread.sleep(100);
  73. }
  74. myProgressDialog.cancel();
  75. }
  76. catch(InterruptedExceptione){
  77. myProgressDialog.cancel();
  78. }
  79. }
  80. }.start();
  81. }
  82. });
myButton01 = (Button)findViewById(R.id.Button1); myButton02 = (Button)findViewById(R.id.Button2); myButton01.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub //创建ProgressDialog对象 myProgressDialog = new ProgressDialog(ProgressDialogActivity.this); //设置进度条风格,风格为圆形的,旋转的 myProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); //设置ProgressDialog标题 myProgressDialog.setTitle("提示"); //设置ProgressDialog提示信息 myProgressDialog.setMessage("这是一个圆形进度条对话框"); //设置myProgressDialog标题图标 myProgressDialog.setIcon(R.drawable.ic_launcher); //设置myProgressDialog的进度条是否不明确 myProgressDialog.setIndeterminate(false); //设置myProgressDialog是否可以按退回键取消 myProgressDialog.setCancelable(true); //设置myProgressDialog的一个Button myProgressDialog.setButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub //点击确定取消对话框 dialog.cancel(); } }); //让ProgressDialog显示 myProgressDialog.show(); } }); myButton02.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub myCount = 0; //创建ProgressDialog对象 myProgressDialog = new ProgressDialog(ProgressDialogActivity.this); //设置进度条风格,风格为长形的。 myProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //设置ProgressDialog标题 myProgressDialog.setTitle("提示"); //设置ProgressDialog提示信息 myProgressDialog.setMessage("这是一个长形进度条对话框"); //设置myProgressDialog标题图标 myProgressDialog.setIcon(R.drawable.ic_launcher); //设置myProgressDialog进度条进度 myProgressDialog.setProgress(100); //设置myProgressDialog的进度条是否不明确 myProgressDialog.setIndeterminate(false); //设置myProgressDialog是否可以按退回键取消 myProgressDialog.setCancelable(true); //设置myProgressDialog的一个Button myProgressDialog.setButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub //点击确定取消对话框 dialog.cancel(); } }); //让ProgressDialog显示 myProgressDialog.show(); new Thread(){ public void run(){ try{ while(myCount <= 100){ //由线程来控制进度 myProgressDialog.setProgress(myCount++); Thread.sleep(100); } myProgressDialog.cancel(); } catch(InterruptedException e){ myProgressDialog.cancel(); } } }.start(); } });

17.TabWidget的使用,代码如下:

要使用TabWidget,首先要了解TabHost,TabHost是一个用来存放Tab标签的容器。

view plain copy to clipboard print ?
  1. publicclassTabHostActivityextendsTabActivity{
  2. TabHostmyTabHost;
  3. /**Calledwhentheactivityisfirstcreated.*/
  4. @Override
  5. publicvoidonCreate(BundlesavedInstanceState){
  6. super.onCreate(savedInstanceState);
  7. setContentView(R.layout.main);
  8. //获取TabHost对象
  9. myTabHost=getTabHost();
  10. //为TabHost添加标签,新建一个newTabSpec(newTabSpec)设置其标签和图标(setIndicator)设置内容(setContent)
  11. myTabHost.addTab(myTabHost.newTabSpec("tabHost1").setIndicator("TAB1",getResources().getDrawable(R.drawable.ic_launcher)).setContent(R.id.myTabContent1));
  12. myTabHost.addTab(myTabHost.newTabSpec("tabHost2").setIndicator("TAB2",getResources().getDrawable(R.drawable.ic_launcher)).setContent(R.id.myTabContent2));
  13. myTabHost.addTab(myTabHost.newTabSpec("tabHost3").setIndicator("TAB3",getResources().getDrawable(R.drawable.ic_launcher)).setContent(R.id.myTabContent3));
  14. //设置TabHost的背景颜色
  15. myTabHost.setBackgroundColor(Color.argb(150,22,70,150));
  16. //设置当前显示哪个标签
  17. myTabHost.setCurrentTab(1);
  18. //标签切换事件处理setOnTabChangedListener
  19. myTabHost.setOnTabChangedListener(newTabHost.OnTabChangeListener(){
  20. @Override
  21. publicvoidonTabChanged(StringtabId){
  22. //TODOAuto-generatedmethodstub
  23. Dialogdialog=newAlertDialog.Builder(TabHostActivity.this).setTitle("提示").setMessage("当前选中"+tabId).setPositiveButton("确定",newDialogInterface.OnClickListener(){
  24. @Override
  25. publicvoidonClick(DialogInterfacedialog,intwhich){
  26. //TODOAuto-generatedmethodstub
  27. dialog.cancel();
  28. }
  29. }).create();
  30. dialog.show();
  31. }
  32. });
  33. }
  34. }

更多相关文章

  1. JDK ANT ANDROID Configure
  2. android设置Webview的滚动条属性
  3. android textview属性
  4. 教你如何创建类似QQ的android弹出菜单
  5. Fastboot使用详解
  6. 使用android中的aapt查看安卓apk包信息
  7. 箭头函数的基础使用
  8. NPM 和webpack 的基础使用
  9. Python list sort方法的具体使用

随机推荐

  1. A Visual Guide to Android(安卓)GUI Wid
  2. Android中各种onTouch事件
  3. Android封装Toast工具类
  4. Android(安卓)gradle测试
  5. android ftp服务器实现
  6. [置顶] Android中显示AlertDialog对话框
  7. 分页控件1
  8. android ClassNotFoundException: Didn't
  9. 监听Bluetooth
  10. Android拷贝图片到指定文件路径