界面——探究活动(Activity)。
2.1 活动是什么
活动(Activity)吸引用户的地方,它是可以界面的组件,主要用于与用户进行交互。
2.2 活动的基本用法
关闭当前项目,新建ActivityTest项目,选择Add No Activity(不添加活动),点击完成。
2.2.1 手动创建活动
初始化项目结构:
右击com.example.hjw.activitytest—>New—Activity—Empty Activity,命名FirstActivity。
勾选Generate Layout File表示自动创建对应的布局文件;
勾选Launcher Activity表示为当前项目的主活动;
勾选Backwards Compatibility表示会为项目启动向下的模式。
这里我们Generate Layout File和Launcher Activity 取消勾选。
项目中的任何活动都应该重写Activity的onCreate()方法。
2.2.2 创建和加载布局
创建布局(layout)文件:右击res目录—>New—>Directory。
创建布局:右击—>layout—>Layout resource file。
加载布局:在onCreate()中调用setContentView(),传入布局的Id。
2.2.3 在AndroidManifest文件中注册
打开AndroidManifest.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="This is firstActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"></action>
<category android:name="android.intent.category.LAUNCHER"></category>
</intent-filter>
</activity>
</application>
</manifest>
android:name:指定哪一个活动。
android:label:指定活动中标题栏的内容。
配置主活动的方法:在activity中添加
<intent-filter>
<action android:name="android.intent.action.MAIN"></action>
<category android:name="android.intent.category.LAUNCHER"></category>
</intent-filter>
运行项目。
2.2.4 在活动中使用Toast
Toast把一些的短小的通知给用户。
点击按钮弹出Toast:
private Button btn_toast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first_layout);
btn_toast= (Button) findViewById(R.id.btn_toast);
btn_toast.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "You cliked Toast", Toast.LENGTH_SHORT).show();
}
});
}
通过findViewById()获取布局中定义的元素。调用setOnClickListener()设置按钮的监听事件,弹出Toast当然要在onClick()编写了。
Toast通过静态方法makeText(上下文对象(Context),显示文本内容,Toast的时间长短(SHORT,LONG))创建出一个Toast()对象,调用show()显示。
2.2.5 在活动中使用Menu
Menu为了让菜单得到显示的同时,还能够不占用任何屏幕资源。
创建menu文件夹:右击res—>New—>Directory。
新建菜单文件:右击menu—New—Menu resource file。
<?xml version="1.0" encoding="utf-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>
创建了两个菜单项, < item/>哪一个菜单项。
android:id:唯一标识。
android:title:菜单名称。
重写onOptionsItemSelected()方法在Activity类中是否显示菜单(true/false)。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main,menu);
return true;
}
通过getMenuInflater()方法得到MenuInflater对象,在通过inflate(menu资源文件,菜单添加到哪个menu)给当前活动创建菜单,返回true显示菜单,false无法显示。
定义菜单相应事件,重写onOptionsItemSelected()方法在Activity类中:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
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;
}
通过item.getItemId()判断是哪个菜单项。
2.2.6 销毁一个活动
Back键销毁当前活动。
通过代码也可以销毁当前活动,finish()方法。
btn_toast.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
2.3 使用Intent在活动之间穿梭
主活动跳转到其它活动。
2.3.1 使用显示Intent
在创建一个SecondActivity活动,右击包名—New—Activity—Empty Activity。
自动生成SendActivity.Java和activity_second.xml文件。编写xml文件:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/