进阶组件
Toast
1 | //Toast是android.widget包内的类 |
需要为Toast设置触发条件。
1
2
3
4
5
6
7
8
9
10
11
12protected 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() {
public void onClick(View v) {
Toast.makeText(FirstActivity.this, "You clicked Button 1", Toast.LENGTH_SHORT).show();
}
});
}改变Toast的位置
1
2
3
4
5
6Toast 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
6public 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
12public 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;
}