赞
踩
**项目主要情况:**创建两个页面,第一个页面中放置一个按钮,点击按钮可以跳转至下一个页面。
AbilitySlice叫子页面,也叫切片或片段。
已知系统中默认存在的页面为“你好,世界”,我们可以在xml文件中对这个页面进行更改,将它改成我们想要的第一个页面。
<Text
ohos:id="$+id:text_helloworld"
ohos:height="match_content"
ohos:width="match_content"
ohos:background_element="$graphic:background_ability_main"
ohos:layout_alignment="horizontal_center"
ohos:text="第一个页面"
ohos:text_size="40vp"
/>
在第一个页面的xml文件中放置按钮“跳转”,并设置按钮相关数据。
<Button
ohos:id="$+id:but1"//按钮名称but1
ohos:height="match_content"//按钮的高度设置是适应名称高度
ohos:width="match_content"//按钮的宽度设置是适应名称长度
ohos:background_element="#00FF00"//按钮的背景颜色
ohos:text_size="40fp"//按钮的大小
ohos:text="跳转"//按钮的名称
/>
创建第二个页面,同时设置相关参数。
首先在com.exmaple.myapplication中新建一个MainAbility2。(注意:创建时弹出的页面中的launcher Ability选项不要打钩,那个表示是否将该页面设置为第一个页面)
新建一个Ability页面,软件会自动构建相应的子界面MainAbility2Slice、xml文件,同时在配置文件config.json中,MainAbility2也进行自动注册了。
第二个页面我们采用java代码的方式进行创建,所以可以删掉xml文件,同时在MainAbility2Slice.java中注释掉下面语句:
super.setUIContent(ResourceTable.Layout_ability_main2);
接下来就是搭建第二个界面的代码,写在MainAbility2Slice类中的onStart方法中。
//1.创建布局对象
DirectionalLayout dl=new DirectionalLayout(this);
//2.创建文本对象
Text t=new Text(this);
//设置内容
t.setText("第二个页面");
//设置文字大小
t.setTextSize(55);
//设置文字颜色
t.setTextColor(Color.MAGENTA);
//3.把文本对象添加搭配布局中
dl.addComponent(t);
//4.把布局添加到子界面中
super.setUIContent(dl);
结果:
在MainAbilitySlice中编写代码,设置页面跳转。
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,并将id强转换为按钮赋值给btu btu =(Button) findComponentById(ResourceTable.Id_but1); //2.给按钮添加一个点击事件 //如果没有添加点击事件,那么用鼠标点击按钮 //给按钮添加了点击事件,那么用鼠标点击按钮之后,就可以执行对应的代码 btu.setClickedListener(this);//最开始括号里不知道传递什么,于是选中setClickedListener,按“ctrl+B”,查看源码,最后发现传递的是ClickedListener这个接口的实现类对象 //实现接口就需要重写里面的所有抽象类方法,点击红色波浪线,按alt+enter,选择第一个implement methods //于是我们可以implements Component.ClickedListener类,在括号中写入this表示本类对象 //当用鼠标点击btu这个按钮,就会执行本类中的onClick方法 }
@Override
public void onClick
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。