android UI事件
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 ?- myEditView.setOnKeyListener(newEditText.OnKeyListener(){
- @Override
- publicbooleanonKey(Viewv,intkeyCode,KeyEventevent){
- myTextView.setText("文本框中内容是:"+myEditView.getText().toString());
- returnfalse;//TODOAuto-generatedmethodstub
- }
- });
2.RadioButton控件和RadioGroup控件的组合使用,代码如下:
view plain copy to clipboard print ?- myRadioGroup.setOnCheckedChangeListener(newRadioGroup.OnCheckedChangeListener(){
- @Override
- publicvoidonCheckedChanged(RadioGroupgroup,intcheckedId){
- //TODOAuto-generatedmethodstub
- if(checkedId==myRadioButton3.getId())
- {
- DisplayToast("正确答案:"+myRadioButton3.getText()+"恭喜你回答正确");
- }
- else
- {
- DisplayToast("回答错误");
- }
- }
- );
3.CheckBox控件的使用,代码如下:
- myCheckBox1.setOnCheckedChangeListener(newCheckBox.OnCheckedChangeListener(){
- @Override
- publicvoidonCheckedChanged(CompoundButtonbuttonView,
- booleanisChecked){
- //TODOAuto-generatedmethodstub
- if(myCheckBox1.isChecked()){
- DisplayToast("你选择了:"+myCheckBox1.getText());
- }
- }
- });
4.Button控件的使用,代码如下:
view plain copy to clipboard print ?- myButton1.setOnClickListener(newButton.OnClickListener(){
- @Override
- publicvoidonClick(Viewv){
- }
- });
4.Spinner控件的使用,代码如下:
- //Spinner控件需要跟ArrayAdapter绑定使用。
- privatestaticfinalString[]m_Countries={"A型","B型","O型","AB型","未知类型"};
- privateSpinnermySpinner;
- privateArrayAdapter<String>myAdapter;
- mySpinner=(Spinner)findViewById(R.id.mySpinner1);
- myAdapter=newArrayAdapter<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(newSpinner.OnItemSelectedListener(){
- @Override
- publicvoidonItemSelected(AdapterView<?>arg0,Viewarg1,
- intarg2,longarg3){
- //TODOAuto-generatedmethodstub
- myTextView.setText("你的血型是"+m_Countries[arg2]);
- arg0.setVisibility(View.VISIBLE);
- }
- @Override
- publicvoidonNothingSelected(AdapterView<?>arg0){
- //TODOAuto-generatedmethodstub
- DisplayToast("你什么也没选!");
- }
- });
5.AutoCompleteTextView的使用,代码如下:
view plain copy to clipboard print ?- privatestaticfinalString[]autoString={"abcd1","abcd212","32123","32open","32add","android","windows","iphone","linux","mydirve","msnbmw","wocaonimalegebi"};
- privateArrayAdapter<String>myAdapter1;
- privateAutoCompleteTextViewmyAutoCompleteTextView;
- myAdapter1=newArrayAdapter<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),newDatePicker.OnDateChangedListener(){
- @Override
- publicvoidonDateChanged(DatePickerview,intyear,intmonthOfYear,
- intdayOfMonth){
- //当日期更改时,在这里处理。
- //myCalendar1.set(year,month,day);
- }
- });
- //获取TimePicker对象设置为24小时显示。
- myTimePicker.setIs24HourView(true);
- //监听时间改变
- myTimePicker.setOnTimeChangedListener(newTimePicker.OnTimeChangedListener(){
- @Override
- publicvoidonTimeChanged(TimePickerview,inthourOfDay,intminute){
- //TODOAuto-generatedmethodstub
- //当时间改变时,在这里处理。
- //myCalendar1.set(year,month,day,hourOfDay,minute);
- }
- });
- //-----------按钮事件---------//
- myButton1.setOnClickListener(newButton.OnClickListener(){
- @Override
- publicvoidonClick(Viewv){
- //下面的NEW是新建了一个调整日历的对话框
- newDatePickerDialog(AndroidUnleashed001Activity.this,newDatePickerDialog.OnDateSetListener(){
- @Override
- publicvoidonDateSet(DatePickerview,intyear,
- intmonthOfYear,intdayOfMonth){
- //TODOAuto-generatedmethodstub
- //设置日历
- }
- },myCalendar1.get(Calendar.YEAR),myCalendar1.get(Calendar.MONTH),myCalendar1.get(Calendar.DAY_OF_MONTH)).show();
- }
- });
- myButton2.setOnClickListener(newButton.OnClickListener(){
- @Override
- publicvoidonClick(Viewv){
- //下面的NEW是新建了一个调整时间的对话框
- newTimePickerDialog(AndroidUnleashed001Activity.this,newTimePickerDialog.OnTimeSetListener(){
- @Override
- publicvoidonTimeSet(TimePickerview,inthourOfDay,intminute){
- //TODOAuto-generatedmethodstub
- }
- },myCalendar1.get(Calendar.HOUR_OF_DAY),myCalendar1.get(Calendar.MINUTE),true).show();
- }
- });
- }
7.Menu的使用,代码如下:
1.XML方式实现
XML代码可以写成:
view plain copy to clipboard print ?- <menuxmlns:android="http://schemas.android.com/apk/res/android">
- <itemandroid:id="@+id/style_submenu"android:title="笔迹样式">
- <menu>
- <groupandroid:id="@+id/style_group"android:checkableBehavior="single">
- <itemandroid:id="@+id/style"android:orderInCategory="1"android:title="铅笔"/>
- <itemandroid:id="@+id/style"android:orderInCategory="2"android:title="钢笔"/>
- <itemandroid:id="@+id/style"android:orderInCategory="3"android:title="毛笔"/>
- </group>
- </menu>
- </item>
- <itemandroid:id="@+id/color_submenu"android:title="笔迹颜色">
- <menu>
- <groupandroid:id="@+id/color_group"android:checkableBehavior="single">
- <itemandroid:id="@+id/color"android:orderInCategory="0"android:title="蓝色"/>
- <itemandroid:id="@+id/color"android:orderInCategory="1"android:title="绿色"/>
- <itemandroid:id="@+id/color"android:orderInCategory="2"android:title="青色"/>
- <itemandroid:id="@+id/color"android:orderInCategory="3"android:title="红色"/>
- </group>
- </menu>
- </item>
- <itemandroid:id="@+id/width_submenu"android:title="笔迹粗细">
- <menu>
- <groupandroid:id="@+id/width_group"android:checkableBehavior="single">
- <itemandroid:id="@+id/width"android:orderInCategory="1"android:title="较细"/>
- <itemandroid:id="@+id/width"android:orderInCategory="2"android:title="细"/>
- <itemandroid:id="@+id/width"android:orderInCategory="3"android:title="中等"/>
- <itemandroid:id="@+id/width"android:orderInCategory="4"android:title="粗"/>
- <itemandroid:id="@+id/width"android:orderInCategory="5"android:title="较粗"/>
- </group>
- </menu>
- </item>
- <itemandroid:id="@+id/write"android:title="书写"/>
- <itemandroid:id="@+id/erase"android:title="清除"/>
- <itemandroid:id="@+id/clear"android:title="清屏"/>
- </menu>
JAVA代码:
- @Override
- publicbooleanonCreateOptionsMenu(Menumenu){
- MenuInflaterinflater=getMenuInflater();
- inflater.inflate(R.menu.menu,menu);
- returntrue;
- }
- @Override
- publicbooleanonOptionsItemSelected(MenuItemitem){
- intitem_id=item.getItemId();
- switch(item_id)
- {
- caseR.id.about1:
- Intentintent=newIntent();
- intent.setClass(AndroidUnleashed001Activity.this,Activity02.class);
- startActivity(intent);
- AndroidUnleashed001Activity.this.finish();
- break;
- caseR.id.about2:
- AndroidUnleashed001Activity.this.finish();
- break;
- }
- returntrue;
- }
- .Menu.add方法实现
- publicbooleanonCreateOptionsMenu(Menumenu){
- //MenuInflaterinflater=getMenuInflater();
- //inflater.inflate(R.menu.menu,menu);
- menu.add(0,0,0,R.string.app_name);
- menu.add(0,1,1,R.string.hello);
- returntrue;
- }
8.弹出对话框的使用,代码如下:
这个功能为弹出对话框,点击确定后弹出登录对话框,然后点击登录后弹出多线程对话框。
view plain copy to clipboard print ?- Dialogdialog=newAlertDialog.Builder(AndroidUnleashed001Activity.this).setTitle("登录提示").setMessage("这里需要登录").setPositiveButton("确定",newDialogInterface.OnClickListener(){
- @Override
- publicvoidonClick(DialogInterfacedialog,intwhich){
- //点击确定转向登陆框
- LayoutInflaterfactory=LayoutInflater.from(AndroidUnleashed001Activity.this);
- //得到自定义对话框
- finalViewDialogView=factory.inflate(R.layout.pop,null);
- //创建对话框
- AlertDialogdlg=newAlertDialog.Builder(AndroidUnleashed001Activity.this).setTitle("登录框").setView(DialogView).setPositiveButton("确定",newDialogInterface.OnClickListener(){
- privateProgressDialogmyProgressDialog;
- @Override
- publicvoidonClick(DialogInterfacedialog,intwhich){
- //当输入完成后,点击确定开始登录。
- myProgressDialog=ProgressDialog.show(AndroidUnleashed001Activity.this,"请等待","正在为您登陆",true);
- newThread(){
- publicvoidrun(){
- try{
- sleep(3000);
- }
- catch(Exceptione){
- e.printStackTrace();
- }
- finally{
- myProgressDialog.dismiss();
- }
- }
- }.start();
- }
- }).setNegativeButton("取消",newDialogInterface.OnClickListener(){
- @Override
- publicvoidonClick(DialogInterfacedialog,intwhich){
- //TODOAuto-generatedmethodstub
- AndroidUnleashed001Activity.this.finish();
- }
- }).create();
- dlg.show();
- }
- }).setNegativeButton("退出",newDialogInterface.OnClickListener(){
- @Override
- publicvoidonClick(DialogInterfacedialog,intwhich){
- //TODOAuto-generatedmethodstub
- AndroidUnleashed001Activity.this.finish();
- }
- }).create();
- dialog.show();
9.ImageView的使用,代码如下:
- myImageButton1.setImageDrawable(getResources().getDrawable(R.drawable.logo2));
- myImageButton1.setOnClickListener(newButton.OnClickListener(){
- @Override
- publicvoidonClick(Viewv){
- //TODOAuto-generatedmethodstub
- Dialogmydialog=newAlertDialog.Builder(AndroidUnleashed003Activity.this).setTitle("提示")
- .setMessage("我是ImageButton1").setPositiveButton("确定",newDialogInterface.OnClickListener(){
- @Override
- publicvoidonClick(DialogInterfacedialog,intwhich){
- //TODOAuto-generatedmethodstub
- }
- }).create();
- mydialog.show();
- }
- });
注意:如果要去掉ImageButton后面的背景色,使得ImageButton看起来更漂亮一些而不是有个边,则需要做:在XML文件中的属性里添加:“android:background="#00000000"”
10.Gallery的使用,拖动效果很炫,代码如下:
view plain copy to clipboard print ?- GallerymyGallery=(Gallery)findViewById(R.id.myGallery);
- //添加ImageAdapter给Gallery对象
- myGallery.setAdapter(newImageAdapter(this));
- myGallery.setBackgroundResource(R.drawable.background);
- myGallery.setOnItemClickListener(newOnItemClickListener(){
- @Override
- publicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intarg2,
- longarg3){
- //TODOAuto-generatedmethodstub
- Toast.makeText(AndroidUnleashed003Activity.this,"你选择了"+(arg2+1)+"号图片",Toast.LENGTH_SHORT).show();
- }
- });
- }
- //另外,需要存放图片,存放图片的容器,需要使用一个类实现,这个类是ImageAdapter,继承于BaseAdapter。
- publicclassImageAdapterextendsBaseAdapter{
- privateContextmyContext;
- privateInteger[]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,
- };
- publicImageAdapter(Contextc){
- myContext=c;
- }
- @Override
- //获取图片的个数
- publicintgetCount(){
- //TODOAuto-generatedmethodstub
- returnmImageIds.length;
- }
- @Override
- //获取图片在库中的位置
- publicObjectgetItem(intarg0){
- //TODOAuto-generatedmethodstub
- returnarg0;
- }
- @Override
- //获取图片在库中的位置
- publiclonggetItemId(intarg0){
- //TODOAuto-generatedmethodstub
- returnarg0;
- }
- @Override
- publicViewgetView(intposition,Viewarg1,ViewGrouparg2){
- //TODOAuto-generatedmethodstub
- //returnnull;
- ImageViewmyImageView=newImageView(myContext);
- //给ImageView设置资源
- myImageView.setImageResource(mImageIds[position]);
- //设置布局图片以120*120显示
- //myImageView.setLayoutParams(newGallery.LayoutParams(120,120));
- //设置显示比例类型
- //myImageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
- returnmyImageView;
- }
- }
11.ImageSwitcher的使用,代码如下:
view plain copy to clipboard print ?- //首先需要实现接口:
- extendsActivityimplementsOnClickListener,ViewFactory
- //具体操作:
- LinearLayoutmyMainView=newLinearLayout(this);
- //创建ImageSwitcher对象
- mySwitcher=newImageSwitcher(this);
- myMainView.addView(mySwitcher);
- mySwitcher.setId(BUTTON_SWITCHER_ID);
- mySwitcher.setFactory(this);
- mySwitcher.setImageResource(mImageIds[index]);
- setContentView(myMainView);
- Buttonnext=newButton(this);
- next.setId(BUTTON_DOWN_ID);
- next.setText("下一张");
- next.setOnClickListener(this);
- //LinearLayout.LayoutParamsparam=newLinearLayout.LayoutParams(200,200);
- myMainView.addView(next);
- Buttonpre=newButton(this);
- pre.setId(BUTTON_UP_ID);
- pre.setText("上一张");
- pre.setOnClickListener(this);
- myMainView.addView(pre);
- }
- privateImageSwitchermySwitcher;
- privatestaticintindex=0;
- //上一页,下一页的按钮索引和Switcher的对象ID
- privatestaticfinalintBUTTON_DOWN_ID=0x123456;
- privatestaticfinalintBUTTON_UP_ID=0x123457;
- privatestaticfinalintBUTTON_SWITCHER_ID=0x123458;
- //实现OnClickListener接口的函数
- @Override
- publicvoidonClick(Viewv){
- //TODOAuto-generatedmethodstub
- switch(v.getId()){
- caseBUTTON_DOWN_ID:
- index++;
- if(index>=mImageIds.length){
- index=0;
- }
- mySwitcher.setImageResource(mImageIds[index]);
- break;
- caseBUTTON_UP_ID:
- index--;
- if(index<0){
- index=mImageIds.length-1;
- }
- mySwitcher.setImageResource(mImageIds[index]);
- break;
- default:
- break;
- }
- }
- //实现View.Factory接口的函数
- @Override
- publicViewmakeView(){
- //TODOAuto-generatedmethodstub
- returnnewImageView(this);
- }
12.GridView的使用,代码如下:
view plain copy to clipboard print ?- //这个和Gallery的使用相似,也需要存图片在BaseAdapter中。
- GridViewmyGridView=(GridView)findViewById(R.id.gridView1);
- myGridView.setAdapter(newImageAdapter(this));
- myGridView.setBackgroundResource(R.drawable.background);
- myGridView.setOnItemClickListener(newOnItemClickListener(){
- @Override
- publicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intarg2,
- longarg3){
- //TODOAuto-generatedmethodstub
- Toast.makeText(AndroidUnleashed003Activity.this,"你选择了"+(arg2+1)+"号图片",Toast.LENGTH_SHORT).show();
- }
- });
- }
12.ScrollView的使用,代码如下:
view plain copy to clipboard print ?- //要垂直滚动,使用ScrollView要水平滚动使用HorizontalScrollView。
- myLayout=(LinearLayout)findViewById(R.id.myLayout);
- myScllorView=(ScrollView)findViewById(R.id.myScrollView);
- ButtonmyButton=(Button)findViewById(R.id.myButton);
- myButton.setOnClickListener(newButton.OnClickListener(){
- privateintmIndex=-1;
- @Override
- publicvoidonClick(Viewv){
- //TODOAuto-generatedmethodstub
- TextViewmyTextView=newTextView(ScrollerViewActivity.this);
- myTextView.setText("TextView"+mIndex);
- LinearLayout.LayoutParamsp=newLinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);
- //增加一个TextView到现行布局中
- myLayout.addView(myTextView,p);
- ButtonmyButtonView=newButton(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 ?- publicclassProgressBarAextendsActivity{
- protectedstaticfinalintGUI_STOP_NOTIFIER=0x108;
- protectedstaticfinalintGUI_THREADING_NOTIFIER=0x109;
- privateProgressBarmyProgress1;
- privateProgressBarmyProgress2;
- privateButtonmyButton;
- privateintintCounter;
- /**Calledwhentheactivityisfirstcreated.*/
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- 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(newButton.OnClickListener(){
- @Override
- publicvoidonClick(Viewv){
- //TODOAuto-generatedmethodstub
- myProgress1.setVisibility(View.VISIBLE);
- myProgress2.setVisibility(View.VISIBLE);
- myProgress1.setMax(100);
- myProgress1.setProgress(0);
- myProgress2.setProgress(0);
- //通过线程来改变Progress的值
- newThread(newRunnable(){
- @Override
- publicvoidrun(){
- //TODOAuto-generatedmethodstub
- for(inti=0;i<10;i++){
- try{
- intCounter=(i+1)*20;
- Thread.sleep(1000);
- if(i==4){
- Messagem=newMessage();
- m.what=ProgressBarA.GUI_STOP_NOTIFIER;
- ProgressBarA.this.myMessageHandler.sendMessage(m);
- break;
- }
- else{
- Messagem=newMessage();
- m.what=ProgressBarA.GUI_THREADING_NOTIFIER;
- ProgressBarA.this.myMessageHandler.sendMessage(m);
- }
- }
- catch(Exceptione){
- e.printStackTrace();
- }
- }
- }
- }).start();
- }
- });
- }
- HandlermyMessageHandler=newHandler(){
- publicvoidhandleMessage(Messagemsg){
- switch(msg.what){
- caseProgressBarA.GUI_STOP_NOTIFIER:
- //myProgress1.setVisibility(View.GONE);
- //myProgress2.setVisibility(View.GONE);
- //Thread.currentThread().interrupt();
- break;
- caseProgressBarA.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的使用,代码如下:
- implementsSeekBar.OnSeekBarChangeListener
- //实现OnSeekBarChangeListener接口
- publicvoidonProgressChanged(SeekBarseekBar,intprogress,
- booleanfromUser){
- //TODOAuto-generatedmethodstub
- myProgressText.setText("当前值:"+progress);
- }
- @Override
- publicvoidonStartTrackingTouch(SeekBarseekBar){
- //TODOAuto-generatedmethodstub
- myTrackingText.setText("正在调节");
- }
- @Override
- publicvoidonStopTrackingTouch(SeekBarseekBar){
- //TODOAuto-generatedmethodstub
- myTrackingText.setText("停止调节");
- }
- }
15.Notification、NotificationManager的使用,代码如下:
view plain copy to clipboard print ?- myIntent=newIntent(Notification01.this,Notification02.class);
- //主要是设置点击通知时显示内容的类
- myPendingIntent=PendingIntent.getActivity(Notification01.this,0,myIntent,0);
- //构造Notification对象
- myNotification=newNotification();
- myButton1.setOnClickListener(newButton.OnClickListener(){
- @Override
- publicvoidonClick(Viewv){
- //TODOAuto-generatedmethodstub
- //设置通知在状态栏显示的图标
- 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 ?- myButton01=(Button)findViewById(R.id.Button1);
- myButton02=(Button)findViewById(R.id.Button2);
- myButton01.setOnClickListener(newButton.OnClickListener(){
- @Override
- publicvoidonClick(Viewv){
- //TODOAuto-generatedmethodstub
- //创建ProgressDialog对象
- myProgressDialog=newProgressDialog(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("确定",newDialogInterface.OnClickListener(){
- @Override
- publicvoidonClick(DialogInterfacedialog,intwhich){
- //TODOAuto-generatedmethodstub
- //点击确定取消对话框
- dialog.cancel();
- }
- });
- //让ProgressDialog显示
- myProgressDialog.show();
- }
- });
- myButton02.setOnClickListener(newButton.OnClickListener(){
- @Override
- publicvoidonClick(Viewv){
- //TODOAuto-generatedmethodstub
- myCount=0;
- //创建ProgressDialog对象
- myProgressDialog=newProgressDialog(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("确定",newDialogInterface.OnClickListener(){
- @Override
- publicvoidonClick(DialogInterfacedialog,intwhich){
- //TODOAuto-generatedmethodstub
- //点击确定取消对话框
- dialog.cancel();
- }
- });
- //让ProgressDialog显示
- myProgressDialog.show();
- newThread(){
- publicvoidrun(){
- try{
- while(myCount<=100){
- //由线程来控制进度
- myProgressDialog.setProgress(myCount++);
- Thread.sleep(100);
- }
- myProgressDialog.cancel();
- }
- catch(InterruptedExceptione){
- myProgressDialog.cancel();
- }
- }
- }.start();
- }
- });
17.TabWidget的使用,代码如下:
要使用TabWidget,首先要了解TabHost,TabHost是一个用来存放Tab标签的容器。
- publicclassTabHostActivityextendsTabActivity{
- TabHostmyTabHost;
- /**Calledwhentheactivityisfirstcreated.*/
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- //获取TabHost对象
- myTabHost=getTabHost();
- //为TabHost添加标签,新建一个newTabSpec(newTabSpec)设置其标签和图标(setIndicator)设置内容(setContent)
- myTabHost.addTab(myTabHost.newTabSpec("tabHost1").setIndicator("TAB1",getResources().getDrawable(R.drawable.ic_launcher)).setContent(R.id.myTabContent1));
- myTabHost.addTab(myTabHost.newTabSpec("tabHost2").setIndicator("TAB2",getResources().getDrawable(R.drawable.ic_launcher)).setContent(R.id.myTabContent2));
- myTabHost.addTab(myTabHost.newTabSpec("tabHost3").setIndicator("TAB3",getResources().getDrawable(R.drawable.ic_launcher)).setContent(R.id.myTabContent3));
- //设置TabHost的背景颜色
- myTabHost.setBackgroundColor(Color.argb(150,22,70,150));
- //设置当前显示哪个标签
- myTabHost.setCurrentTab(1);
- //标签切换事件处理setOnTabChangedListener
- myTabHost.setOnTabChangedListener(newTabHost.OnTabChangeListener(){
- @Override
- publicvoidonTabChanged(StringtabId){
- //TODOAuto-generatedmethodstub
- Dialogdialog=newAlertDialog.Builder(TabHostActivity.this).setTitle("提示").setMessage("当前选中"+tabId).setPositiveButton("确定",newDialogInterface.OnClickListener(){
- @Override
- publicvoidonClick(DialogInterfacedialog,intwhich){
- //TODOAuto-generatedmethodstub
- dialog.cancel();
- }
- }).create();
- dialog.show();
- }
- });
- }
- }
更多相关文章
- JDK ANT ANDROID Configure
- android设置Webview的滚动条属性
- android textview属性
- 教你如何创建类似QQ的android弹出菜单
- Fastboot使用详解
- 使用android中的aapt查看安卓apk包信息
- 箭头函数的基础使用
- NPM 和webpack 的基础使用
- Python list sort方法的具体使用