文章目录
这种方式也是鸿蒙官方推荐的一个入门应用。
最终效果:
在ability_main.xml中,修改内容如下
在com.huan.myapplication 包下 创建Ability类
创建完毕之后,会发现多了一个xml文件
但我们是用代码去实现的,所以,这个xml文件把它删除
在ability_main.xml 中,发现 DirectionalLayout 中是将所有的功能都给包含起来,类似下图:
来到了 SecondAbilitySlice 页面中,添加如下代码
package com.huan.myapplication.slice;
import com.huan.myapplication.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.ability.DataAbilityHelper;
import ohos.aafwk.content.Intent;
import ohos.agp.components.DirectionalLayout;
import ohos.agp.components.Text;
import ohos.agp.utils.Color;
public class SecondAbilitySlice extends AbilitySlice {
@Override
public void onStart(Intent intent) {
super.onStart(intent);
// super.setUIContent(ResourceTable.Layout_ability_secound);
//1.创建布局对象
DirectionalLayout d1 = new DirectionalLayout(this);//代表这个对象在当前的类
//2.创建文本对象
Text text = new Text(this);
//设置内容
text.setText("爱昊哥么");
//设置文字大小
text.setTextSize(40);
//设置文字颜色
text.setTextColor(Color.BLUE);
//3.把文本对象,添加到布局中
d1.addComponent(text);
//4.把布局添加到子页面当中
super.setUIContent(d1);
}
@Override
public void onActive() {
super.onActive();
}
@Override
public void onForeground(Intent intent) {
super.onForeground(intent);
}
}
代码实现
来到了 MainAbilitySlice 类
package com.huan.myapplication.slice;
import com.huan.myapplication.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.aafwk.content.Operation;
import ohos.agp.components.Button;
import ohos.agp.components.Component;
public class MainAbilitySlice extends AbilitySlice implements Component.ClickedListener {
Button btu ;
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_main);
//1.找到按钮 id
btu = (Button) findComponentById(ResourceTable.Id_but1);
//2.给按钮添加一个点击事件
//如果没有添加点击事件,那么用鼠标点击按钮之后是没有任何反应的。
//如果我们给按钮添加了点击事件,那么用鼠标点击按钮之后,就可以执行对应的代码
//理解方式:
//给btu这个按钮添加了点击事件
//当我们用鼠标点击了btu这个按钮之后,就可以执行本类中onClick方法
btu.setClickedListener(this);
}
@Override
public void onActive() {
super.onActive();
}
@Override
public void onForeground(Intent intent) {
super.onForeground(intent);
}
@Override
public void onClick(Component component) {
//点击按钮只要执行的代码
//跳转到第二个页面中
if(component == btu){
//只有点击了btu这个按钮之后,才能跳转
//跳转的哪个页面中,(意图)
Intent i = new Intent();
//包含了要跳转的页面信息
Operation operation = new Intent.OperationBuilder()
.withDeviceId("") //要跳转到哪个设备上,如果传递一个没有内容的字符串,则表示跳转到本机
.withBundleName("com.huan.myapplication")//我要跳转到哪个应用上
.withAbilityName("com.huan.myapplication.SecondAbility")//要跳转的页面
.build();//表示将上面的三个信息进行打包
//把打包后的operation设置到意图当中
i.setOperation(operation);
//跳转页面
startAbility(i);
}
}
}