一.菜单
1.创建菜单
2.创建选项菜单
3.创建上下文菜单
4.创建弹出菜单
5.实例展示
// CreateMenu-MainActivity.java public class MainActivity extends Activity { RelativeLayout layout;//1:声明布局组件 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); layout=(RelativeLayout)findViewById(R.id.layout1); //2:获取布局组件 } //此方法用于初始化菜单,menu:即将要显示的Menu实例,返回true显示该menu,false 则不显示; //(只会在第一次初始化菜单时调用) Inflate the menu; this adds items to the action bar @Override public boolean onCreateOptionsMenu(Menu menu) { Log.i("optionMenu", "-------onCreateOptionsMenu------"); MenuInflater inflater = getMenuInflater();//获取MenuInflater inflater.inflate(R.menu.main, menu); //加载Menu资源 return true; //此方法必须返回true,否则不予显示 } //在onCreateOptionsMenu执行后,菜单被显示前调用;如果菜单已经被创建,则在菜单显示前被调用。 //(可以通过此方法动态的改变菜单的状态,比如加载不同的菜单等) @Override public boolean onPrepareOptionsMenu(Menu menu) { Log.i("optionMenu", "-------onPrepareOptionsMenu------"); return super.onPrepareOptionsMenu(menu); } // 菜单项被点击时调用,也就是菜单项的监听方法。 //通过这几个方法,可以得知,对于Activity,同一时间只能显示和监听一个Menu 对象。 @Override public boolean onOptionsItemSelected(MenuItem item) { Log.i("optionMenu", "-------onOptionsItemSelected------"); switch(item.getItemId()){ //判断选中项的id case R.id.red: layout.setBackgroundColor(Color.RED); break; case R.id.green: layout.setBackgroundColor(Color.GREEN); break; case R.id.yellow: layout.setBackgroundColor(Color.YELLOW); break; } return super.onOptionsItemSelected(item); } //每次菜单被关闭时调用 //(菜单被关闭有三种情形,menu按钮被再次点击、back按钮被点击或者用户选择了某一个菜单项) @Override public void onOptionsMenuClosed(Menu menu) { Log.i("optionMenu", "-------onOptionsMenuClosed------"); super.onOptionsMenuClosed(menu); }}
//屏蔽一切因版本而导致新api中才能使用的方法报的android lint错误 @SuppressLint("NewApi") public class MainActivity extends Activity { Button b1;//1:声明组件 Button b2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); b1=(Button)findViewById(R.id.button1); //注册上下文菜单到b1 registerForContextMenu(b1); b2=(Button)findViewById(R.id.button2); b2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Log.i("menu", "--------- b2.setOnClickListener----------"); //第二个参数指定锚定视图 PopupMenu pm = new PopupMenu(MainActivity.this, b2); //获取一个菜单填充器,用于填充菜单,调用inflate方法填充菜单 //getMenu获取弹出菜单的菜单 pm.getMenuInflater().inflate(R.menu.main, pm.getMenu()); pm.show(); //给弹出菜单添加菜单选项点击监听器,监听菜单项的点击事件 pm.setOnMenuItemClickListener(new OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { Log.i("menu", "--------- pm.setOnMenuItemClickListener----------"); switch(item.getItemId()){ case R.id.red: b2.setBackgroundColor(Color.RED); break; case R.id.green: b2.setBackgroundColor(Color.GREEN); break; case R.id.yellow: b2.setBackgroundColor(Color.YELLOW); break; } return true; //返回true说明该方法会处理该事件,不需要继续传播事} //当创建上下文菜单时三个参数自动传入 //1. ContextMenu,使用的上下文菜单对象,就是显示菜单选项的那个菜单 //2. 注册了上下文菜单的视图,这里是那个按钮 //3. 上下文菜单信息,关于选中项菜单的额外信息 @Override public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) { Log.i("menu", "--------- onCreateContextMenu()----------"); getMenuInflater().inflate(R.menu.main, menu); } @Override public boolean onContextItemSelected(MenuItem item) { Log.i("menu", "--------- onContextItemSelected()----------"); switch(item.getItemId()){ case R.id.red: b1.setBackgroundColor(Color.RED); break; case R.id.green: b1.setBackgroundColor(Color.GREEN); break; case R.id.yellow: b1.setBackgroundColor(Color.YELLOW); break;} return true; //返回true表示该方法会处理菜单事件,不需要继续传播该事件 }}
6.小结
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算