【Android】学习笔记(2)――基本控件二

Menu 控件


不需要在布局文件中设置Menu的样式等,只需要在Activity中Override onCreateOptionsMenu(Menu menu)方法,在方法中对menu进行添加和排序等。添加menu中item的方法为add (int groupId, int itemId, int order, CharSequence title),这里有4个参数,第一个是groupId,若设置为单一的groupId,则menu中的Item顺序会按照order排列,也就是按照第三个参数order排列;但是,如果有2个groupId,那么这时menu的显示顺序为group1的item1,group2的item1,group1的item2,group2的item2……以此类推,即各个group轮流显示item。第二个参数是Item的唯一标识,要保持相互不一致。第三个参数为group中item的显示顺序;第四个参数为item的显示的名称。


代码片段如下:


  1. @Override

  2. publicboolean onCreateOptionsMenu(Menu menu) {

  3. // TODO Auto-generated method stub

  4. super.onCreateOptionsMenu(menu);

  5. //group1

  6. menu.add(1, 1, 1, R.string.aa);

  7. menu.add(1, 2, 2, R.string.bb);

  8. menu.add(1, 3, 3, R.string.cc);

  9. //group2

  10. menu.add(2, 4, 1, R.string.dd);

  11. menu.add(2, 5, 2, R.string.ee);

  12. menu.add(2, 6, 3, R.string.ff);

  13. returntrue;

  14. }


当然,还有其他的add方法,上述add方法是最详细的。

此时,运行android虚拟机,然后点击menu的按钮,可得如下排列的menu:

180658272.png


!!!请注意各个按钮的排列顺序。

然后,当然要对这些按钮进行一些事件的添加了。

这里需要Override onOptionsItemSelected(MenuItem item) 方法,参数item即为我们点击的该item。

在这个函数里,我们可以用switch或者其他条件判断语句来对不同的按钮做出不同的事件处理,下列代码片段是对A和F做了事件处理:



  1. @Override

  2. publicboolean onOptionsItemSelected(MenuItem item) {

  3. // TODO Auto-generated method stub

  4. switch (item.getItemId()) {

  5. case1:

  6. Toast.makeText(ControlDemo2Activity.this,

  7. String.valueOf(item.getItemId()), Toast.LENGTH_SHORT)

  8. .show(); //弹出所选中item的itemId

  9. break;

  10. case6:

  11. finish(); //关闭

  12. break;

  13. }

  14. returnsuper.onOptionsItemSelected(item);

  15. }



Toast控件

Toast控件是比较简单的一种控件,在上述的例子中也有应用。其效果就是当某个事件触发或者是需要出现某种提示的时候,在Activity上弹出一个短暂的提示信息。

效果如下:

181042925.png


实现Toast十分简单,只需要使用Toast的静态方法

makeText(Context context, int resId, int duration)

或者

makeText(Context context, CharSequence text, int duration)

两个方法的第一个参数是Context对象,一般就是所处的Activity,第三个参数是该Toast弹出后持续的时间,可以使用Toast.LENGTH_LONG或者Toast.LENGTH_SHORT来设置,当然也可以使用setDuration方法来自己设置时长。不同的是第三个参数,前者是会引用资源文件中的内容,后者则是需要加入一个CharSequence的对象,可以是String字符串。

代码片段如下:


  1. Toast.makeText(ToastDemoActivity.this, R.string.toast, Toast.LENGTH_LONG).show();

当然,也可以自己设定Toast的样式,注意的是,必须先要调用Toast的一个静态方法makeText才能进一步的自己设置样式和内容,方法如下:



  1. Toast toast = Toast.makeText(ToastDemoActivity.this, "" , Toast.LENGTH_LONG);

  2. toast.setDuration(0); //改变Toast的弹出持续时间

  3. toast.setText("aaa"); //改变Toast的文字

  4. toast.show();

Toast的样式自定义的还有很多,包括setGravity(),setMargin(),setXOffset(),setYOffset()等等,可以根据自己的喜好来自己定义。

附件是例子的代码,仅供参考。

如果我的文章给与了你帮助,就不妨请我喝杯咖啡吧,点击-> btn-index.png


你可能感兴趣的:(移动开发,toast,menu)