当前位置:   article > 正文

《HarmonyOS实战 — 事件案例》_harmonys案例

harmonys案例

一:读取文件循环显示

package com.example.listenerapplication.slice;

import com.example.listenerapplication.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.Button;
import ohos.agp.components.Component;
import ohos.agp.components.Text;
import ohos.global.resource.NotExistException;
import ohos.global.resource.Resource;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Random;

public class MainAbilitySlice extends AbilitySlice implements Component.ClickedListener {

    String[] jokes;
    Text text1;
    Button btu1;

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

        try {
            //用来拼接读取到的所有数据
            StringBuilder sb = new StringBuilder();
            //1.资源管理器
            Resource resource = this.getResourceManager().getResource(ResourceTable.Profile_joke);
            //因为resource是一个字节流,利用字节流可以读取文件中的内容
            BufferedReader br = new BufferedReader(new InputStreamReader(resource));
            String line;
            while((line = br.readLine()) != null){
                sb.append(line);
            }
            //释放资源
            br.close();
            //当代码执行到这里的时候,资源文件joke.txt中所有的内容全部读取到sb当中了。
            //利用---将数据进行切割,分成四个段子

            jokes = sb.toString().split("---");

            //当我们点击了按钮之后,就会给文本框设置一个随机的笑话。
            //找到文本组件,按钮组件
            text1 = (Text) findComponentById(ResourceTable.Id_text1);
            btu1 = (Button) findComponentById(ResourceTable.Id_btu1);
            //给按钮添加一个单击事件
            btu1.setClickedListener(this);


        } catch (IOException e) {
            e.printStackTrace();
        } catch (NotExistException e) {
            e.printStackTrace();
        }


    }

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

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


    @Override
    public void onClick(Component component) {
        //当我们点击了按钮之后,会从数组里面随机获取一个笑话并设置到文本当中
        Random r = new Random();
        //获取随机索引
        int index = r.nextInt(jokes.length);
        //通过随机索引获取段子
        String randomJoke = jokes[index];
        //把随机的段子设置到文本当中
        text1.setText(randomJoke);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85

二:读取图片循环显示

package com.example.listenerapplication.slice;

import com.example.listenerapplication.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.Button;
import ohos.agp.components.Component;
import ohos.agp.components.Image;

import java.util.ArrayList;
import java.util.Random;

public class MainAbilitySlice extends AbilitySlice implements Component.ClickedListener {
    ArrayList<Integer> list = new ArrayList<>();
    Image image;

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

        //定义一个数组或者集合用来存储所有的图片

        list.add(ResourceTable.Media_girl1);
        list.add(ResourceTable.Media_girl2);
        list.add(ResourceTable.Media_girl3);
        list.add(ResourceTable.Media_girl4);
        list.add(ResourceTable.Media_girl5);
        list.add(ResourceTable.Media_girl6);
        list.add(ResourceTable.Media_girl7);
        list.add(ResourceTable.Media_girl8);
        list.add(ResourceTable.Media_girl9);

        //找到组件
        image = (Image) findComponentById(ResourceTable.Id_img);
        Button btu1 = (Button) findComponentById(ResourceTable.Id_but1);

        //给按钮绑定单击事件
        btu1.setClickedListener(this);


    }

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

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

    @Override
    public void onClick(Component component) {
        //当按钮被点击之后,我们需要修改图片的内容
        Random r = new Random();
        //获取随机索引
        int index = r.nextInt(list.size());
        //通过随机的索引,可以获取随机的元素
        int randomImg = list.get(index);
        //把获取到的随机图片设置给Image组件就可以了
        image.setImageAndDecodeBounds(randomImg);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65

三:事件计数

package com.example.listenerapplication.slice;

import com.example.listenerapplication.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.Button;
import ohos.agp.components.Component;
import ohos.agp.components.Text;

public class MainAbilitySlice extends AbilitySlice implements Component.ClickedListener {
    Text text;
    Button btu;

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


        //找到文本和按钮对象
        text = (Text) findComponentById(ResourceTable.Id_text1);
        btu = (Button) findComponentById(ResourceTable.Id_btu1);

        //给按钮设置单击事件
        btu.setClickedListener(this);
    }

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

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


    //如果flag为true表示当前按钮是第一次点击
    //如果flag为false表示当前按钮不是第一次点击
    boolean flag = true;
    long startTime = 0;

    //用来记录点击了多少次
    int count = 0;

    @Override
    public void onClick(Component component) {
        //点一次,计数器就自增一次。
        count++;
        //统计10秒之内,按了多少次
        //并把次数在文本框展示出来

        if(flag){
            //如果当前是第一次点击按钮
            //记录当前的时间
            startTime = System.currentTimeMillis();
            //当第一次点击之后,游戏开始
            //修改按钮中的文字内容
            btu.setText("请疯狂点我");
            //修改标记
            flag = false;
        }else{
            if((System.currentTimeMillis() - startTime) <= 10000 ){
                text.setText(count + "");
            }else{
                btu.setText("结束");
                //取消按钮的点击事件,让该按钮不能再被点击了
                btu.setClickable(false);
            }
        }

    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/229239
推荐阅读
相关标签
  

闽ICP备14008679号