进度条,TabHost,ViewFlipper、菜单

来源:互联网 发布:南极争夺战 知乎 编辑:程序博客网 时间:2024/06/03 21:42
进度条:让用户了解进度:显示的一个进度       android:max      数值的最大值       android:progress   当前的进度       style  设置进度条的形式。 一种是长条 一种是圆圈         在java中有函数 setProgress   getProgress   获得进度和设置进度  ProgressBar:圆圈进度  SeekBar: 条形进度    seekBar是progressBar的之类     seekBar是可以手动滑动的进度条         android:thumb  可以设置滑块的样式  即添加图片        seekbar变化监听是:             seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener()  {               /**               * 当进度停止的时候               */               @Override               public void onStopTrackingTouch(SeekBar arg0) {                    // TODO Auto-generated method stub               }               /**               * 当进度开始的时候               */               @Override               public void onStartTrackingTouch(SeekBar arg0) {                    // TODO Auto-generated method stub               }               /**               * 当进度改变的时候               */               @Override               public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {                    // TODO Auto-generated method stub               }          });  RatingBar: 星星进度 是seekBar和ProgressBar的扩展       android:numStars  一个RatingBar一共有几颗,默认是5颗。       android:rating   当前Rating有几颗星被点亮       android:stepsize  每次添加能添加几颗       android:isIndicator   设置该星级评分条是否允许用户改变tabHost 选项卡,activity界面是一部分是选项卡,一部分为显示其他内容          当Activity不是继承与TabActivity类,那么就需要调用            TabHost.setup函数,     构建选项卡视图,需要用到下列几个容器和部件      *、 TabHost(容器)、用于容纳选项卡按钮和选项卡内容      *、TabWidget用于容纳选项卡按钮,每个按钮由文本标签及可选的图标组成。              必须将TabWidget的android:id  设置的时候必须是 @android:id/tabs              如果activity是继承了TabActivity的类,则TabHost的id必须是 @android:id           newTabSpec(String tag) 创建选项卡        addTab(TabHost.TabSpec tabspec)添加选项卡      *、FrameLayout用于容纳选项卡内容,每块内容都是FrameLayout的一个子类           eg:             setContentView(R.layout.activity_main);          tabHost=getTabHost();          tabHost.addTab(tabHost.newTabSpec("student")//创建新的选项卡                    .setIndicator("学生信息").//设置选项卡的显示信息                    setContent(R.id.tab1));//关联到每个选项卡的id          tabHost.addTab(tabHost.newTabSpec("enter")                    .setIndicator("登陆").                    setContent(R.id.tab2));     }ViewFlipper 是继承与Framelayout ,开始的时候只会显示一个子视图,可让用户通过交互操作视图,    也可以通过定时器来翻转视图,       先建立ViewFlipper         在viewFlipper中添加控件,每个空间只能显示一个子视图                 在触发事件中只用viewFlipper中的shownext方法即可菜单:   选项菜单:       1、选项菜单的概念           *、通过按下设备上的Menu按钮来触发          *、一般用于针对整个界面的选项操作       2、选项菜单的创建         *、创建,在Activity下有一个方法onCreateOptionsMenu()方法         可以创建选项才当项,         /**     * 这个方法在activity被创建时被调用一次,     */            @Override     public boolean onCreateOptionsMenu(Menu menu) {          // 解析xml中定义的菜单          getMenuInflater().inflate(R.menu.main, menu);          //添加菜单,四个参数          menu.add( Menu.NONE(没有分组)//菜单组的id                 0x0001//菜单的id                 1//每个菜单在整个菜单的位置,                 “你”//菜单的标签);          return true;     }       3、选项菜单的事件相应           *、这个方法接受一个MenuItem实例,代表被选中的item           getItemId获得被选中的Item的id                  /**     * 选项菜单的响应函数     用switch判断是那个item被点击     */     @Override     public boolean onOptionsItemSelected(MenuItem item) {          switch (item.getItemId()) {          case R.id.action_settings:               break;          default:               break;          }          // TODO Auto-generated method stub          return super.onOptionsItemSelected(item);     }       4、菜单的动态修改         *、调用方法,这个方法每次启用选项菜单都会调用一次          @Override              public boolean onPrepareOptionsMenu(Menu menu) {              // TODO Auto-generated method stub               menu.add(Menu.none,0x0004,4,"删除");                  return super.onPrepareOptionsMenu(menu);                }         *、对参数menu进行相应操作,注意id的设置和获取           1、add方法添加item           2、finditem方法查找item           3、removieitem 方法删除item       5、XML设置方式              *、菜单的XML文件在res/menu目录中           *、使用的时候R.menu.你菜单的id         建立:           *<menu>代表一个跟元素           *、<item>代表一个MenuItem,即菜单下的一个选项           *、<item>属性:                  id:item的id,索引               title:选项的标签,文字显示               icon:item的图标,有些的系统不会显示,               orderInCategory:次序,在item中显示的次序   上下文菜单:和选项菜单类似,就是函数名字不一样       概念:用手指按住某个带有上下文菜单的控件不放,就会显示上下文菜单,             一般用于针对某个界面元素的扩展操作。     1、首先要告诉系统那些控件要关联上下文菜单           registerForContextMenu(要添加上下文菜单的控件)     2、复写onCreateContextMenu方法          *、与option不同每次唤醒菜单是才调用          *、通过参数id,对菜单做出响应操作。     3、复写onContextItemSelected方法             对用户的操作做出响应菜单的高级特性:  次级菜单:    菜单里的子菜单项,:         *:设置、            1、可以在xml中加入menu标签来实现次级菜单            2、也可以通过addSubMenu方法加入次级菜单                     addsubmenu方法返回一个submenu对象。               可以对submenu对象进行操作add,remove来修改二级菜单item  菜单组:     1、把若干个item放到一个组里,这些item可以共享一些特性             setGroupVisiable设置组下的item是否可见          setGroupEnabled设置组下item是不是可用          setGroupCheckedable组下是不是能被选中        *、不会影响原来界面 代码逻辑        *|设置;在Java中若设置一组则,add方法中的第一个参数应该一样                  menu.add(1,01,1,"tian");               menu.add(1,02,3,"song");             在xml中使用group标签包裹起来               <group                       android:id="@+id/group">                            <item                              android:id="@+id/action_settings"                               android:orderInCategory="1"                               android:showAsAction="never"                               android:title="@string/action_settings"/>                             <item                                android:id="@+id/item1"                                android:title="wo "                                android:orderInCategory="10"></item>                        </group>  使用checkable的item:      *、一个菜单的item可以表示为可选和不可选            使用组的android:checkableBehavior属性      *、一组item的checkable可能存在多种可能,             不支持check动作,          单选(radio burrons的行为)          复选(checkbox的行为)         设置、  在xml中的group标签中添加android;checkableBehavior属性                   android:checkableBehavior="single" 单选                android:checkableBehavior="all"复选          menu控件本身点击后不会修改状态,需要手动设置                  if(item.isChecked()==false){                   item.setChecked(true);                   }else{                   item.setChecked(false);                   }
0 0