读书笔记(四)Android应用开发教程

Android事件处理机制分为回调和监听两种

回调机制的实质是将事件的处理绑定在控件上,有图像用户界面控件自己处理事件。

简单的说:在A类中定义了一个方法,这个方法中用到了一个接口和该接口中的抽象方法,但是抽象方法没有具体的实现,需要B类去实现,B类实现该方法后,它本身不会去调用该方法,而是传递给A类,供A类去调用。

相对于回调,个人感觉监听更加常用。

监听由事件,事件源个监听器组成,监听器接口有三种实现方式:

匿名内部类:

bt1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this,"you have clicked Button1",Toast.LENGTH_SHORT).show();
            }
        });

内部类:
   private View.OnClickListener MyListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(MainActivity.this,"you have clicked Button2",Toast.LENGTH_SHORT).show();
        }
    };
外部类:





--------------------------------------------------------------------------------------------------------------------------------------

然后第六章就是一些高级控件的使用

AutoCompleteText   下拉匹配

Spinner  下拉列表

ListView   列表视图

GirdView   九宫格

Gallery   水平滚动列表

ScrollView   滚动

TabHost    选项卡

ImageSwitcher  和Gallery一起实现幻灯片

ProgressBar 进度条

SeekBar   可拖动进度条

主要还是要多写,从实例中去熟悉控件,其中Tabhost因为版本的问题,要是想图文一起显示可以更换下APP的theme,在AndroidManifest.xml中换成 android:theme="@android:style/Theme.Black" 。

R文件有时找不到需要的ID,一方面如果找xml文件注意看看文件名是否大写了,大写的不行。另一方面可以手动import自己包下R文件,一般就行了

以上控件大多都要用到适配器

简单一点的

ArrayAdapter:

把数据放入一个数组以便显示

simpleAdapter:可以定义各种各样的布局,把ImageView ,Button,TextView等放在一起。一般还要用的数组列表ArrayList和HashMap

这两个适配器都要手动一个个添加数据,

BaseAdapter可以动态生成布局,需要重写一些方法

-------------------------------------------------------------------------------------------------------------------------------------

菜单和对话框也是非常常用的,一般新建项目时会自动重写选项菜单的回调方法,添加菜单项就好了。注意的是4.0以上版本也不能同时显示图文,要重写

 public boolean onPrepareOptionsMenu(Menu menu)   
    {  
        // TODO Auto-generated method stub  
        return super.onPrepareOptionsMenu(menu);  
    }  
      
    //enable为true时,菜单添加图标有效,enable为false时无效。4.0系统默认无效  
    private void setIconEnable(Menu menu, boolean enable)  
    {  
        try   
        {  
            Class<?> clazz = Class.forName("com.android.internal.view.menu.MenuBuilder");  
            Method m = clazz.getDeclaredMethod("setOptionalIconsVisible", boolean.class);  
            m.setAccessible(true);  
              
            //MenuBuilder实现Menu接口,创建菜单时,传进来的menu其实就是MenuBuilder对象(java的多态特征)  
            m.invoke(menu, enable);  
              
        } catch (Exception e)   
        {  
            e.printStackTrace();  
        }  
    } 
    
onCreateOptionsMenu(Menu menu) 里也要加上  setIconEnable(menu, true); 

-------------------------------------------------------------------------------------------------------------------------------

到第六章为止安卓基础的一些使用就全部看完了。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值