活动是什么
活动是最容易吸引用户的地方,它是一种可以包含用户界面的组件,主要用于和用户进行交互。
一.手动创建活动
1. 点击Start a new Android Stdio project选择 No Activity 点击Next
自定义项目名字和保存位置点击Finish![在这里插入图片描述](https://img-blog.csdnimg.cn/20200719192826160.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhYXp6eg==,size_16,color_FFFFFF,t_70)
2. 创建活动,在com.example.activity包下New-Activity-Empty Activity新建Resive_Activity活动不要勾画Generate a layouty file(自动创建布局文件),Launcher Activity(设置为主活动)
3. 创建布局,在app/src/main/res目录下new-Directory创建一个layout文件夹,在layout文件夹下new-layout Ressource File创建一个布局文件resive_activitylayout
完成后点开resive_activitylayout文件,吧右上角的Code换成Split如图所示,可以看到此时是一个空白页面
我们给他简单的加一个按钮
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button"/>
现在在右边可以看到我们加的按钮
4.加载布局,添加一句代码setContentView(R.layout.resive_activitylayout);
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.resive_activitylayout);
}
5.注册并设置主活动,android stdio会自动帮我们完成注册,打开AndroidManifest.xml文件
<activity android:name=".Resive_Activity"></activity>
这里就是注册
设置主活动:添加如下代码
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
创建完成,现在运行程序,如下:
二.活动的基本用法
1.Toast:Toast是android系统提供的一种提醒方式,在程序中使用它将一些短小的信息告诉用户,用法如下
我们通过点击刚创建的按钮来发出提醒,吧Resive_Activity中onCreate改成如下就做好了,再次运行点击Button就显示我们想显示的信息
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.resive_activitylayout);
Button button1 = findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(Resive_Activity.this,"you are a pig",Toast.LENGTH_SHORT).show();
}
});
}
2.在活动中使用Menu
1.首先和刚才建布局文件resive_activitylayout一样在app/src/main/res目录下new-Directory创建一个menu文件夹,在menu文件夹下new-menu Ressource File创建一个菜单文件revise_activitymenu,建成后如下![在这里插入图片描述](https://img-blog.csdnimg.cn/20200719204039802.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhYXp6eg==,size_16,color_FFFFFF,t_70)
在里面添加菜单项
<item
android:id="@+id/item_1"
android:title="Add"/>
<item
android:id="@+id/item_2"
android:title="Remove"/>
右边已经出现创建出的效果
2.在活动中加载菜单,重写onCreateOptionsMenu方法
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.revise_activitymenu,menu);
return true;
}
3.设置菜单项响应事件,重写onOptionsItemSelected方法
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.item_1:
Toast.makeText(zzzOneActivity.this,"猪头",Toast.LENGTH_SHORT).show();
break;
case R.id.item_2:
Toast.makeText(zzzOneActivity.this,"猪头",Toast.LENGTH_SHORT).show();
break;
default:
}
return true;
}
运行程序,效果出现
3.显式Intent与隐式Intent
android中可用Intent来实现切换不同活动
先看显式Intent
1.再创建活动Resive_Activiey2,和Resive_Activity3,再次选中Generate a layouty file,让他自动创建布局文件。
2.修改对应xml文件中的代码如下
3.修改onClick方法中的代码如下,运行程序点击Butten,Resive_Activity2就出现了
public void onClick(View view) {
//Toast.makeText(Resive_Activity.this,"you are a pig",Toast.LENGTH_SHORT).show();
Intent intent = new Intent(Resive_Activity.this,Resive_Activity2.class);
startActivity(intent);
}
隐式Intent
打开Resive_Activity2创建按钮点击事件创建Intent对象,传入action
Button button2 = findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Toast.makeText(Resive_Activity.this,"you are a pig",Toast.LENGTH_SHORT).show();
Intent intent = new Intent("abcdef"); //这个可随意写
//intent.addCategory("com.example.activity.MY_CATEGORY");
//这个用自己的Category
startActivity(intent);
}
});
修改AndroidManifest.xml文件
<activity android:name=".Resive_Activity3">
<intent-filter>
<action android:name="abcdef"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>