未分类

Android第四课——进阶组件之Toast与菜单

进阶组件

Toast

1
2
3
4
5
6
7
8
9
10
//Toast是android.widget包内的类
//makeText是Toast的静态方法,返回一个按照参数生成的Toast
Toast toast = Toast.makeText(context, text, duration);
toast.show();
//context相当于一个场景、情景,application/service/activity都是它的子类
//text是要显示的文本
//duration是持续时间,有Toast.LENGTH_SHORT和Toast.LENGTH_LONG两个内置常量可选

Toast.makeText(FirstActivity.this, "text", Toast.LENGTH_SHORT).show();
//先执行makeText()方法,其返回的Toast对象再执行show()方法
  • 需要为Toast设置触发条件。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.first_layout);
    Button button1 = (Button) findViewById(R.id.button_1);
    //用findViewById()方法找到button1(view类),再转换成button类
    button1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    Toast.makeText(FirstActivity.this, "You clicked Button 1", Toast.LENGTH_SHORT).show();
    }
    });
    }
  • 改变Toast的位置

    1
    2
    3
    4
    5
    6
    Toast toast = Toast.makeText(context, text, duration);
    toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);
    toast.show();
    //让Toast出现在容器的左上角
    //Gravity是Object的子类,有TOP/BOTTLE/LEFT/RIGHT/CENTER等常用int常量
    //第二、第三个参量是向右、向下移动Toast的偏移量

菜单

菜单资源

  • 需要在res/menu下建立菜单资源文件
    1
    2
    3
    4
    5
    6
    7
    8
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
    android:id="@+id/add_item"
    android:title="Add"/>
    <item
    android:id="@+id/remove_item"
    android:title="Remove"/>
    </menu>

部署菜单

  • 重写onCreateOptionsMenu()方法创建菜单

    1
    2
    3
    4
    5
    6
    public boolean onCreateOptionsMenu(Menu menu) { //传入一个menu变量
    getMenuInflater().inflate(R.menu.main, menu);
    //先调用getMenuInflater()方法得到MenuInflater对象
    //再调用它的inflate()方法创建menu实例
    return true;//方法中创建的菜单可见
    }
  • 重写onOptionsItemSelected()方法定义菜单响应事件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) {//调用getItemId()方法得到被点击的菜单项ID
    case R.id.add_item:
    Toast.makeText(this, "You clicked Add", Toast.LENGTH_SHORT).show();
    break;
    case R.id.remove_item:
    Toast.makeText(this, "You clicked Remove", Toast.LENGTH_SHORT).show();
    break;
    default:
    }
    return true;
    }
分享到