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); }