Android学习(3)

Android活动

活动(Activity)是一种可以包含用户界面的组件,主要用于和用户进行交互,一个应用程序中可以包含另个或多个活动,但不包含任何活动的 应用程序很少见。

1
2
3
4
5
6
7
8
public class FirstActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first_layout);
}
}

在活动中使用Toast

Toast是Android系统提供的一种非常好的提醒方式,在程序中可以使用它将一些短小的信息通知给用户, 这些信息会在一段时间后自动消失,并且不会占用任何屏幕空间。

  • 首先使用findViewById()方法获取布局文件中定义的按钮,来得到按钮的实例。findViewById()方法返回一个View对象,向下转型为Button对象。
  • 然后通过调用setOnClickListener()方法为按钮注册一个监听器,点击按钮就会触发监听器中的onClick方法。
  • 然后在onClick方法中编写弹出Toast的功能语句。

通过静态方法makeText() 创建出一个Toast 对象,然后调用show()将Toast显示出来就可以了。这里需要注意的是,makeText() 方法需要传入3个参数。 第一个参数是Context,也就是Toast要求的上下文,由于活动本身就是一个Context 对象,因此这里直接传入FirstActivity.this 即可。第二个参数是Toast显示的文本内容, 第三个参数是Toast显示的时长,有两个内置常量可以选择Toast.LENGTH_SHORT、Toast.LENGTH_LONG。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first_layout);
Button button_1 = (Button)findViewById(R.id.button_1);
button_1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(FirstActivity.this, "You click Button 1", Toast.LENGTH_SHORT).show();
}
});
}

在活动中使用Menu

通过getMenuInflater() 方法能够得到MenuInflater 对象, 再调用它的inflate()方法就可以给当前活动创建菜单了。inflate() 方法接收两个参数,第一个参数用于指定我们通过哪一个资源文件来创建菜单,这里当然传入R.menu.main。第二个参数用于指定我们的菜单项将添加到哪一个Menu 对象当中,这里直接使用onCreateOptionsMenu()方法中传入的menu 参数。然后给这个方法返回true,表示允许创建的菜单显示出来, 如果返回了false,创建的菜单将无法显示。

1
2
3
4
5
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

还要再定义菜单响应事件。在FirstActivity中重写onOptionsItemSelected() 方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.add_item:
Toast.makeText(this, "you click add item", Toast.LENGTH_SHORT).show();
break;
case R.id.remove_item:
Toast.makeText(this, "you click remove item", Toast.LENGTH_SHORT).show();
break;
default:
}
return true;
}