鸿蒙使用java语言编写一个登录界面

Posted Leach爱喝星冰乐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了鸿蒙使用java语言编写一个登录界面相关的知识,希望对你有一定的参考价值。

一个大二学生党第一次发文章,最近开始接触鸿蒙软件开发,相对于安卓开发,个人觉得鸿蒙开发有更多的选择性。接下来直接上自己做的一个小demo

主界面

通过getText()方法来获取文本框里面的信息进行账号密码判断

登录失败返回登录界面

登录成功跳转界面

登录成功界面的文字是用了跑马灯的显示方式

ability_main.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:orientation="vertical">
    <Text
        ohos:id="$+id:text_hello"
        ohos:height="match_content"
        ohos:width="match_content"
        ohos:background_element="$graphic:background_ability_main"
        ohos:layout_alignment="horizontal_center"
        ohos:text="$string:head"
        ohos:text_size="120"
        />
    <TabList
        ohos:id="$+id:tab_list"
        ohos:height="40vp"
        ohos:width="match_parent"
        ohos:tab_length="90vp"
        ohos:text_size="20fp"
        ohos:text_alignment="center"
        ohos:orientation="horizontal"
        ohos:normal_text_color="#000000"
        ohos:selected_text_color="#000000"
        ohos:selected_tab_indicator_color="#000000"
        ohos:selected_tab_indicator_height="10vp"
        />
       <DirectionalLayout
        ohos:id="$+id:tab_container"
        ohos:height="match_parent"
        ohos:width="match_parent"
        ohos:below="$id:tab_list"
        />


</DirectionalLayout>

login.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:orientation="vertical">
    <Text
        ohos:id="$+id:text_body"
        ohos:height="100vp"
        ohos:width="match_content"
        ohos:background_element="$graphic:background_ability_main"
        ohos:layout_alignment="horizontal_center"
        ohos:text="$string:login"
        ohos:text_size="120"
        ohos:top_padding="80"
        />
    <TextField
        ohos:hint="请输入账号..."
        ohos:hint_color="#000000"
        ohos:left_margin="40vp"
        ohos:right_margin="40vp"
        ohos:id="$+id:username"
        ohos:below="$id:text_body"
        ohos:height="40vp"
        ohos:width="match_parent"
        ohos:background_element="#FF75758B"
        ohos:auto_font_size="true"
        ohos:multiple_lines="false"
        ohos:text_input_type="pattern_text"
        />
    <TextField
        ohos:hint="请输入密码..."
        ohos:hint_color="#000000"
        ohos:top_margin="10vp"
        ohos:left_margin="40vp"
        ohos:right_margin="40vp"
        ohos:id="$+id:password"
        ohos:below="$id:username"
        ohos:height="40vp"
        ohos:width="match_parent"
        ohos:background_element="#FF75758B"
        ohos:auto_font_size="true"
        ohos:multiple_lines="false"
        ohos:text_input_type="pattern_password"
        />
    <Button
        ohos:top_margin="20vp"
        ohos:left_margin="120vp"
        ohos:right_margin="120vp"
        ohos:height="40vp"
        ohos:width="match_parent"
        ohos:id="$+id:loginbutton"
        ohos:hint="登录"
        ohos:hint_color="#000000"
        ohos:background_element="#FF75758B"
        ohos:auto_font_size="true"
        />


</DirectionalLayout>

hello.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:orientation="vertical">
    <Text
        ohos:id="$+id:text_body"
        ohos:height="match_content"
        ohos:width="match_content"
        ohos:background_element="$graphic:background_ability_main"
        ohos:layout_alignment="horizontal_center"
        ohos:text="$string:Hello"
        ohos:text_size="120"
        ohos:top_padding="80"
        />
</DirectionalLayout>

loginfinish.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:orientation="vertical">
    <Text
        ohos:id="$+id:top_text_body"
        ohos:height="100vp"
        ohos:width="match_content"
        ohos:background_element="$graphic:background_ability_main"
        ohos:layout_alignment="horizontal_center"
        ohos:text="$string:loginfinish"
        ohos:text_size="120"
        ohos:top_padding="80"
        />
    <Image
        ohos:id="$+id:wx"
        ohos:height="100vp"
        ohos:width="match_content"
        ohos:below="$id:top_text_body"
        ohos:image_src="$media:weixin"
        ohos:scale_y="4"
        ohos:scale_x="4"
        ohos:layout_alignment="horizontal_center"
        />
    <Text
        ohos:id="$+id:bottom_text_body"
        ohos:height="100vp"
        ohos:width="match_content"
        ohos:background_element="$graphic:background_ability_main"
        ohos:layout_alignment="horizontal_center"
        ohos:text="$string:loginwx"
        ohos:below="$id:wx"
        ohos:text_size="120"
        ohos:top_padding="80"
        />
</DirectionalLayout>

注册界面和关于我们的界面只是个模子我还没做所以就跳过了

MainAbilitySlice.java

package com.etc.tablelist.slice;

import com.etc.tablelist.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.*;

import java.text.BreakIterator;

public class MainAbilitySlice extends AbilitySlice {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);
        /*顶部切换控件 tablist*/
        TabList tabList = (TabList) findComponentById(ResourceTable.Id_tab_list);
        TabList.Tab tab1 = tabList.new Tab(getContext());
        tab1.setText("首页");
        tabList.addTab(tab1);
        TabList.Tab tab2 = tabList.new Tab(getContext());
        tab2.setText("登录");
        tabList.addTab(tab2);
        TabList.Tab tab3 = tabList.new Tab(getContext());
        tab3.setText("注册");
        tabList.addTab(tab3);
        TabList.Tab tab4 = tabList.new Tab(getContext());
        tab4.setText("关于我们");
        tabList.addTab(tab4);


        AbilitySlice slice=this;//指向当前对象

        //添加tablist的选择效果
        tabList.addTabSelectedListener(new TabList.TabSelectedListener() {
            ComponentContainer componentContainer = (ComponentContainer) findComponentById(ResourceTable.Id_tab_container);
            @Override
            public void onSelected(TabList.Tab tab) {
                if(tab.getText().equals("首页")){//当点首页时显示首页
                    componentContainer.removeAllComponents();//清除当前界面
                    Component hello = LayoutScatter.getInstance(slice).parse(ResourceTable.Layout_hello,null,false);
                    componentContainer.addComponent(hello);//显示首页
                }else  if(tab.getText().equals("登录")){//当点登录时显示登录界面
                    componentContainer.removeAllComponents();//清除当前界面
                    Component login = LayoutScatter.getInstance(slice).parse(ResourceTable.Layout_login,null,false);
                    componentContainer.addComponent(login);//显示登录界面
                    Button button = (Button) findComponentById(ResourceTable.Id_loginbutton);
                    button.setClickedListener(new Component.ClickedListener() {//添加按钮的选择效果
                        @Override
                        public void onClick(Component component) {
                            /*获取帐号和密码*/
                        Text username = (Text) findComponentById(ResourceTable.Id_username);
                        Text password = (Text) findComponentById(ResourceTable.Id_password);
                        if(username.getText().trim().equals("Leach")&&password.getText().trim().equals("001216")){ //判断帐号和密码是否匹配
                            componentContainer.removeAllComponents();
                            MainAbilitySlice.super.setUIContent(ResourceTable.Layout_loginfinish);
                            Text text= (Text) findComponentById(ResourceTable.Id_bottom_text_body);
                            //设置跑马灯效果
                            text.setTruncationMode(Text.TruncationMode.AUTO_SCROLLING);
                            //启动跑马灯
                            text.startAutoScrolling();
                            //设置始终
                            text.setAutoScrollingCount(Text.AUTO_SCROLLING_FOREVER);
                        }else{
                            componentContainer.removeAllComponents();
                            componentContainer.addComponent(login);
                        }
                    }
                    });
                }else  if(tab.getText().equals("注册")){
                    componentContainer.removeAllComponents();
                    Component register = LayoutScatter.getInstance(slice).parse(ResourceTable.Layout_register,null,false);
                    componentContainer.addComponent(register);
                }else  if(tab.getText().equals("关于我们")){
                    componentContainer.removeAllComponents();
                    Component aboutus = LayoutScatter.getInstance(slice).parse(ResourceTable.Layout_aboutus,null,false);
                    componentContainer.addComponent(aboutus);
                }
            }

            @Override
            public void onUnselected(TabList.Tab tab) {

            }

            @Override
            public void onReselected(TabList.Tab tab) {

            }
        });
        tabList.selectTab(tab1);
    }
    @Override
    public void onActive() {
        super.onActive();
    }

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }
}

string.json

{
  "string": [
    {
      "name": "app_name",
      "value": "tablelist"
    },
    {
      "name": "head",
      "value": "厦门同城交友"
    },
    {
      "name": "mainability_description",
      "value": "Java_Phone_Empty Feature Ability"
    },
    {
      "name": "Hello",
      "value": "欢迎使用"
    },
    {
      "name": "login",
      "value": "登录界面"
    },
    {
      "name": "register",
      "value": "注册界面"
    },
    {
      "name": "aboutus",
      "value": "关于我们"
    },
    {
      "name": "loginfinish",
      "value": "登录成功"
    },
    {
      "name": "loginwx",
      "value": "最快捷的交友方式就是微信啦!!!"
    }
  ]
}

以上就是demo的全内容

以上是关于鸿蒙使用java语言编写一个登录界面的主要内容,如果未能解决你的问题,请参考以下文章

JSP编写一个登陆界面

用java写一个登陆界面代码。

鸿蒙(HarmonyOS)支持低代码开发,无需HTML知识,就可以设计复杂界面

用java写一个登陆界面代码。

JAVA Web 编写登陆界面?

小熊派实现鸿蒙开机界面(LiteOS+LVGL)