API学习笔记

1.两种菜单:长按菜单和主菜单

   a)长按菜单:覆盖onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfo);

                      getMenuInflater().inflate(R.menu.context_menu, menu),context_menu为menu目录下的xml文件;

                      AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo,info.position定位被长按的Item.

                      menu.setHeaderView(v) 能为此菜单添加一个headView。

 

                     覆盖onContextItemSelected(final MenuItem item),长按菜单某一项被点击时被调用

                      AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();定位被长按的Item.

                      item.getItemId()定位菜单的哪一个item被点击

 

                     注册监听;View.setOnCreateContextMenuListener(this).

  b)主菜单:覆盖onCreateOptionsMenu(Menu menu);

               

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.alarm_list_menu, menu);
        return super.onCreateOptionsMenu(menu);
    }

               覆盖onOptionsItemSelected(MenuItem item)。

2.继承view或view的子类

   a)可以覆盖onAttachedToWindow()来动态注册广播或数据库的监听,同时覆盖onDetachedFromWindow()来取消注册

   b)可以利用AttributeSet来自定义该view的特有属性。

   c)Typeface结合assets文件夹下fonts文件夹下的.ttf格式文件实现设置text的样式。

3.

    /**
     * Tells the StatusBar whether the alarm is enabled or disabled
     */
    private static void setStatusBarIcon(Context context, boolean enabled) {
        Intent alarmChanged = new Intent("android.intent.action.ALARM_CHANGED");
        alarmChanged.putExtra("alarmSet", enabled);
        context.sendBroadcast(alarmChanged);
    }

 

posted @ 2012-10-19 14:55  ljob  阅读(267)  评论(0编辑  收藏  举报