android 解析本地txt文本,arrays

本文档介绍了如何在Android应用中解析本地TXT文件以显示文本,并使用ARRAYS资源逐条显示内容。首先在XML布局文件中创建TextView,然后在res/raw目录下存放TXT文件并读取。此外,还讨论了在arrays文件中定义标签来存储问题和答案集合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大家好,我是萌兹,今天是周一(9月11日),开启奋斗模式~

前几天看到一则新闻: 比利时《老人》杂志曾在全国的60岁老人中展开了一项调查,“你最后悔什么”,引发了一次集体对人生的思考。比利时调查结果:

      1.72%的老人后悔年轻时努力不够,以至事业无成.

  2. 67%的老人后悔选错了职业.

  3. 63%的老人后悔对子女教育不够或方法不当.

  4. 58%的老人后悔对健康重视不够,以至身体受损.

  5. 56%的老人后悔自己对老伴不够忠诚.

  6. 47%的老人后悔自己对双亲尽孝不够.

  7. 41%的老人后悔自己选错了终身伴侣.

       8. 36%的老人后悔自己未周游世界.

  9. 32%的老人后悔自己这一生过于平淡,缺乏刺激.

  10. 11%的老人后悔自己没有把握时机赚到更多的钱,没给后人留下更多的物质财富

所以,为了不让自己60岁回首自己一生时后悔,深深地反省了一下自身,也同时希望此篇博文能引起大家的思考,仅以此共勉微笑

言归正传,最近学习了本地数据解析,一个是txt直接显示大篇幅文本,另一个是arrays逐条显示

一、txt存储文本

1、首先在xml文件中创建一个显示文本的TextView控件

2、在res下,创建与layout同级的raw包,把编辑好的mybook.txt文件粘贴到raw包下,注意可能出现乱码的现象,再在工程里复制一下就ok啦

3、在activty中读取txt文件

 Resources res = super.getResources();                   // 操作资源
        InputStream input = res.openRawResource(R.raw.mybook);  // 读取资源ID
        Scanner scan = new Scanner(input);                      // 实例化Scanner
        StringBuffer buf = new StringBuffer();                  // 接收数据
        while (scan.hasNext()) {                                // 循环读取
            buf.append(scan.next()).append("\n");               // 保存数据
        }
        scan.close();                                           // 关闭输入流
        try {                                                   // 关闭输入流
            input.close() ;
        } catch (IOException e) {
            e.printStackTrace();
        }
        this.msg.setText(buf.toString());                       // 设置文字

代码地址:txt


二、arrays存储逐条显示

1、在arrays文件里添加两个标签(一个问题集合、一个答案集合)

   <string-array name="question" translatable="false">  
        <item>你是谁?</item>  
        <item>你多大?</item>  
        <item>你的爱好是什么?</item>  
        <item>你喜欢什么颜色?</item>  
        <item>你喜欢什么运动?</item>
    </string-array>

    <string-array name="answer" translatable="false">  
        <item>小萌兹</item>  
        <item>23</item>  
        <item>跳舞</item>  
        <item>粉色、天蓝色、黄色、粉红色、橘色、白色、草绿色、藏蓝色</item>  
        <item>游泳</item>  
    </string-array>

2、在activity中

 ArrayList<HashMap<String, String>> datas = new ArrayList<HashMap<String, String>>();
        for (int i = 0; i <= 4; i++) {//zhu
            HashMap<String, String> item = new HashMap<String, String>();
            String[] question = getResources().getStringArray(R.array.question);
            item.put("showTitle", Arrays.asList(question).get(i).toString());
            String[] answer = getResources().getStringArray(R.array.answer);
            item.put("hideContent", Arrays.asList(answer).get(i).toString());
            datas.add(item);
        }
        listView = (ListView) findViewById(R.id.listview);
        adapter = new HelpCenterAdapter(MainActivity.this, datas);
        listView.setAdapter(adapter);
    }

配置一个adapter,大功告成

项目地址




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值