1、活动Activity是什么
2、Activity的基本用法
3、创建和加载布局
4、在AndroidManifest文件中注册
5、在活动中使用Toast
6、在活动中使用Menu
7、销毁一个Activity
1、活动Activity是什么
活动(Activity)是一种可以包含用户界面的组件,主要用于和用户进行交互
2、Activity的基本用法
新建一个Android项目,工程名叫ActivityTest
![](https://img.haomeiwen.com/i143920/5a74027f29155473.png)
![](https://img.haomeiwen.com/i143920/f81668c162aed075.png)
创建一个No Activity,一步一步创建
![](https://img.haomeiwen.com/i143920/afd738852e14aabf.png)
按照Project模式排列文件
![](https://img.haomeiwen.com/i143920/614bf4a9f978a70b.png)
添加Activity
![](https://img.haomeiwen.com/i143920/0d1730a8469b3f65.png)
给Activity添加名称
![](https://img.haomeiwen.com/i143920/7c10ae73520c0b4b.png)
查看创建成功的Activity,项目中任何活动都应该重写Activity的onCreate()方法
![](https://img.haomeiwen.com/i143920/d2c129bc9e662182.png)
3、创建和加载布局
Android程序的设计讲究逻辑和视图分离,最好每一个Activity都能对应一个布局,布局就是用来显示界面内容的
手动创建布局文件
![](https://img.haomeiwen.com/i143920/19da1663e52222d8.png)
![](https://img.haomeiwen.com/i143920/37af543e31086dc2.png)
布局编辑器
![](https://img.haomeiwen.com/i143920/e42781cc914895dc.png)
![](https://img.haomeiwen.com/i143920/6ddb36c5e0255da2.png)
对布局进行编辑
![](https://img.haomeiwen.com/i143920/13ac3015cb7d261e.png)
显示布局后的效果
![](https://img.haomeiwen.com/i143920/3fff037f6f94c89e.png)
将布局加载到Activity中
![](https://img.haomeiwen.com/i143920/ae555263ddf7a2a8.png)
4、在AndroidManifest文件中注册(maniest:证明、表明、显示)
将Activity进行注册,并设置成启动后显示的页面
![](https://img.haomeiwen.com/i143920/f01ab162addb28e9.png)
最终运行效果
![](https://img.haomeiwen.com/i143920/7c2ed51fa7ca42e4.png)
5、在活动中使用Toast
Toast是Android系统提供的一种非常友好的提醒方式,在程序中可以使用它将一些短小的信息通知给用户,这些信息会在一段时间后自动消失,并且不会占用任何屏幕空间
现在给添加的按钮添加一个事件,点击后弹出Toast
public class FirstActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// 项目中的任何活动都应该重写Activity的onCreate()方法
super.onCreate(savedInstanceState);
setContentView(R.layout.first_layout);
// 通过id获取到布局文件中定义的元素,得到按钮的实例,返回一个View对象,向下转型成Button对象
Button button1 = (Button)findViewById(R.id.button_1);
// 为按钮注册一个监听器,点击按钮时会执行监听器中的onClick()方法
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 弹出Toast要在onClick()方法中编写
Toast.makeText(FirstActivity.this, "You clicked Button 1", Toast.LENGTH_SHORT).show();
}
});
}
}
Toast用法很简单,通过静态方法makeText()创建出一个Toast对象,然后调用show()方法将Toast显示出来。makeText()方法需要传入3个参数,第一个是是Context,也就是Toast要求的上下文,由于活动本身就是一个Context对象,因此直接传入FirstActivity.this即可,第二个参数是Toast显示的文本内容,第三个参数是Toast显示的时长,有两个内置常量可以选择Toast.LENGTH_SHORT和Toast.LENGTH_LONG
最终运行后的效果如下:
![](https://img.haomeiwen.com/i143920/3676f194748fc3cd.png)
6、在活动中使用Menu
在res目录下创建一个menu文件夹,然后创建Menu resource file文件
![](https://img.haomeiwen.com/i143920/6409ef0ba37113cb.png)
给文件命名为main
![](https://img.haomeiwen.com/i143920/5a9275bb6ea26018.png)
在main.xml文件中添加两个item
![](https://img.haomeiwen.com/i143920/97585985d6c461c6.png)
回到FirstActivity中重写onCreateOptionsMenu()方法将菜单显示出来,重写onOptionsItemSelected()方法给定义的菜单添加响应事件
// 将菜单显示出来
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
// 通过getMenuInflater()方法能够得到MenuInflater对象,再调用inflate()方法就可以给当前
// 活动创建菜单了,inflate()方法接收两个参数,第一个参数用于指定通过哪一个资源文件来创建
// 菜单,第二个参数用于指定菜单项将添加到哪一个Menu对象中 inflate:使充气,使膨胀
getMenuInflater().inflate(R.menu.main, menu);
// 方法返回true,表示允许创建的菜单显示出来,如果返回false,创建的菜单将无法显示
return true;
}
// 给定义的菜单添加响应事件
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
// 通过item.getItemId()来判断点击的是哪一个菜单项,然后给每个菜单项添加自己的逻辑处理
switch (item.getItemId()) {
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;
}
最终的效果会发现标题栏右侧多了一个三点的符号,这个就是菜单按钮了,效果图如下
![](https://img.haomeiwen.com/i143920/3069466e65b6ad1a.png)
![](https://img.haomeiwen.com/i143920/6f88ea4deb9acf70.png)
7、销毁一个Activity
只要按下Back键就可以销毁当前的Activity了,不过不想通过按钮的方式,而是希望在程序中通过代码来销毁Activity,使用finish()方法,就可以销毁当前对象了
Button button1 = (Button)findViewById(R.id.button_1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
点击按钮销毁Activity,这个效果跟按Back键效果一致
网友评论