其他分享
首页 > 其他分享> > [HarmonyOS]——登录界面实现

[HarmonyOS]——登录界面实现

作者:互联网

本次业务逻辑梳理,页面跳转还没有学,所以这里不涉及页面跳转,为了展示效果,使用吐司弹框对具体的操作进行提示。 

 XML文件中组件的定义:

<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayout
    xmlns:ohos="http://schemas.huawei.com/res/ohos"
    ohos:height="match_parent"
    ohos:width="match_parent"
    ohos:background_element="#DDDDDD"
    ohos:orientation="vertical">

    <TextField
        ohos:id="$+id:username"
        ohos:height="50vp"
        ohos:width="319vp"
        ohos:hint="请输入手机号"
        ohos:text_size="17fp"
        ohos:hint_color="#999999"
        ohos:text_alignment="center"
        ohos:layout_alignment="horizontal_center"
        ohos:top_margin="100vp"
        ohos:background_element="#FFFFFF"
        />

    <TextField
        ohos:id="$+id:passwd"
        ohos:height="50vp"
        ohos:width="319vp"
        ohos:hint="请输入密码"
        ohos:text_size="17fp"
        ohos:hint_color="#999999"
        ohos:text_alignment="center"
        ohos:layout_alignment="horizontal_center"
        ohos:top_margin="10vp"
        ohos:background_element="#FFFFFF"
        ohos:text_input_type="pattern_password"
        />

    <Text
        ohos:id="$+id:forget"
        ohos:height="match_content"
        ohos:width="match_content"
        ohos:text="忘记密码了?"
        ohos:text_size="16fp"
        ohos:text_color="#979797"
        ohos:top_margin="12vp"
        ohos:layout_alignment="right"
        ohos:right_margin="20vp"
        />

    <Button
        ohos:id="$+id:login"
        ohos:height="50vp"
        ohos:width="319vp"
        ohos:text="登录"
        ohos:text_size="24vp"
        ohos:text_color="#fefefe"
        ohos:text_alignment="center"
        ohos:background_element="#21a8fd"
        ohos:top_margin="76vp"
        ohos:layout_alignment="horizontal_center"
        />

    <Button
        ohos:id="$+id:register"
        ohos:height="50vp"
        ohos:width="319vp"
        ohos:text="注册"
        ohos:text_size="24vp"
        ohos:text_color="#fefefe"
        ohos:text_alignment="center"
        ohos:background_element="#21a8fd"
        ohos:top_margin="13vp"
        ohos:layout_alignment="horizontal_center"
        />


</DirectionalLayout>

Java中定义业务逻辑:

public class MainAbilitySlice extends AbilitySlice implements Component.ClickedListener {
    TextField username = null; //用户名
    TextField passwd = null;   //密码
    Text forget = null; //忘记密码
    Button login = null;//登录
    Button register = null; //注册

    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);

        //1、找到组件
        username = (TextField) findComponentById(ResourceTable.Id_username);
        passwd = (TextField) findComponentById(ResourceTable.Id_passwd);
        forget = (Text) findComponentById(ResourceTable.Id_forget);
        login = (Button) findComponentById(ResourceTable.Id_login);
        register = (Button) findComponentById(ResourceTable.Id_register);

        //2、绑定事件
        //忘记密码
        forget.setClickedListener(this);
        //登录
        login.setClickedListener(this);
        //注册
        register.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 == forget) {
            //跳转到忘记密码页面
            MyToast.showDialog(this, "用户点击了忘记密码");
        } else if(component == login) {
            //比较用户输入的用户名和密码是否正确
            //实际开发中,我们是把用户名和密码传递给服务器进行比较,服务器返回正确与否信息
            //1、获取到用户输入的内容
            String usernameInput = username.getText();
            String passwdInput = passwd.getText();

            //2、数据比对
            //因为目前还没有学与服务器的交互,这里仅测试
            //判断文本输入框是否为空
            if("".equals(usernameInput) || "".equals(passwdInput)) {
                //提示文本为空
                MyToast.showDialog(this, "用户名或密码不能为空");
            }else if("admin".equals(usernameInput) && "root".equals(passwdInput)) {
                //如果正确了,则跳转到app页面
                MyToast.showDialog(this, "登录成功");
            } else {
                //如果错误了,弹框提示用户
                MyToast.showDialog(this, "用户名和密码错误");
            }
        } else if(component == register) {
            //跳转到注册页面
            MyToast.showDialog(this, "用户点击了注册页面");
        }
    }
}

标签:界面,forget,登录,密码,findComponentById,HarmonyOS,ResourceTable,跳转,public
来源: https://blog.csdn.net/weixin_42067873/article/details/119839594