记账本小程序7天开发记录(第六天)

记账本小程序的数据存储实现准备使用xml文件进行存储,xml文件作为轻量级数据的存储个人认为比较适用于家庭记账本的数据存储,而且可以按时间进行存储

今天使用Android开发Android下的学生基本信息管理系统并存储在xml文件.

开发过程中出现这样一个错误

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method ‘java.lang.StringBuilder java.lang.StringBuilder.append(java.lang.String)‘ on a null object reference

找寻了许多案例最终发现

private StringBuilder newStringBuilder() {
        // TODO Auto-generated method stub
        return null;
    }

在编写该方法的时候少加了一个空行自动生成的方法返回值为NULL了,所以导致了空指针异常的错误。

找到了错误的原因,解决起来便得心应手。

MainActivity源代码展示:

package com.fmd.studentmanager;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.Toast;

public class MainActivity extends Activity {

    private EditText et_name;
    private EditText et_number;
    private RadioGroup rg_sex;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        et_name = findViewById(R.id.et_name);
        et_number = findViewById(R.id.et_number);
        rg_sex = findViewById(R.id.rg_sex);
    }

    public void save(View view){
        String name = et_name.getText().toString().trim();
        String number = et_number.getText().toString().trim();
        if(TextUtils.isEmpty(name)||TextUtils.isEmpty(number)) {
            Toast.makeText(this, "学生的姓名或学号不能为空", 0).show();
            return;
        }
        StringBuilder sb = new StringBuilder();
        int id = rg_sex.getCheckedRadioButtonId();
        String sex = "male";
        if(id == R.id.rb_male) {
            //男性
            sex = "male";
        }else {
            //女性
            sex = "female";
        }
        //数据保存到文件
        sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
        sb.append("<student>");
        sb.append("<name>");
        sb.append(name);
        sb.append("</name>");
        sb.append("<number>");
        sb.append(number);
        sb.append("</number>");
        sb.append("<sex>");
        sb.append(sex);
        sb.append("</sex>");
        sb.append("</student>");
        try {
            File file = new File(getFilesDir(),name+".xml");
            FileOutputStream fos = new FileOutputStream(file);
            fos.write(sb.toString().getBytes());
            fos.close();
            Toast.makeText(this, "数据保存成功", 0).show();
        } catch (Exception e) {
            Toast.makeText(this, "数据保存异常", 0).show();
            e.printStackTrace();
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

结果展示图:

原文地址:https://www.cnblogs.com/fuheishi/p/10420508.html

时间: 2024-11-09 00:58:13

记账本小程序7天开发记录(第六天)的相关文章

小程序商城系统开发方案

移动互联最大的好处是可以将个人的空余碎片化时间利用起来,各种支付APP.社交APP让人们在互联网中沟通畅通.消息传播不再受时间.空间限制.同时小程序商城系统开发方案,小程序商城系统开发@[email protected]@6457,小程序商城软件开发,微信小程序商城系统开发,移动终端使得消费者的娱乐生活更加便捷并且操作体验也是绝佳,消费者可随时在现实和虚拟世界中来回切换,做到随时娱乐.生活. 小程序是一种不需要下载安装即可使用的应用,它实现了应用"触手可及"的梦想,用户扫一扫或者搜一下

小程序共享链开发系统模式

小程序共享链平台,小程序共享链软件(陈琦:138-2848-7919可微)小程序共享链模式,小程序共享链APP,小程序共享链定制,小程序共享链商城,小程序共享链开发,小程序共享链定制,共享链商家"基于区块链技术理念而开发,以消费奖励的方式,让消费者重复消费,主动分享,持续关注.达到提升商家销量的目. --共享链具体做什么-- 举例,顾客到某水果店购买商品后通过共享链支付成功后进入共享链小程序,该小程序里面会显示消费者的消费金额,奖励金额和已经到账金额,之后其他消费者也到该水果店消费,那共享链系统

现在可以把小程序交给第三方开发或管理了

刚刚,小程序又放出了一波新能力,第三方平台支持小程序.小程序新增数据分析接口和小程序代码包大小限制扩大为2M三项新能力上线. 一.第三方平台支持小程序 开发管理更省心现在,不用交出帐号密码,也能把小程序交给第三方开发或管理了.如果你是不懂开发或者没有精力开发和管理的企业,现在可以把小程序授权给第三方平台,他们可以帮你进行小程序的代码开发与管理.客服服务等.托管方式很简单:小程序管理员在支持小程序的第三方平台上,扫码同意即可授权.授权的具体能力:配置服务器地址,代码开发.上传提交与发布,模版消息与

快速了解微信小程序的使用,一个根据小程序的框架开发的todos app

微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程,做了一个常规的todo app.这个app基于微信小程序的平台,实现了todo app的常规功能,同时为了让它更接近实际的工作场景,也用到了loading与toast这两个组件来完成一些操作的交互与反馈.这个平台给我的直观感受是,技术层面,它跟vue有相似性,但是远没有vue强大:开发时候的思路,不

phpcms程序二次开发记录

1. phpcms/base.php 中的 pc_base 类 静态类,主要加载各个文件使用.2. pc_base 中 load_sys_func 等带 sys的函数,基本都是加载 lib下文件. func加载functions下: class 加载 class下3. pc_base 中 函数一般第一个参数为文件名,第二个参数为路径,第3个参数有一般为:加载类是否实体化4. pc_base 中 load_app开头则为加载modules下的 functions和class等5. 网站开始入口控制

云商姐姐小程序商城定制开发

小程序将开启微信的下半场,也将开启公众号的第二春.对于内容创业者而言,一场新的战争开始了. 为用户提供的服务越多,无疑商业上的想象空间也就更大.所以说,现有公众号大号的入口价值又提高了,其估值在资本市场上相应地也将会有大幅度的提升. 云商姐姐小程序商城定制开发,云商姐姐小程序开发159/2059/6457云商姐姐小程序商城模式开发,云商姐姐小程序商城软件开发,云商姐姐小程序分销商城开发 云商姐姐家拥有资深养生中医学家,竭力为你打造绿色健康生活理念,没有理所当然.就是要在各种变数.可能之中,仍然要

小程序商城系统开发模式平台搭建详解

小程序商城系统开发(李想.185.6504.8478)随着移动互联网的深入普及,流量碎片化的趋势无法逆转,百度.淘宝等平台成本越来越高,效果却越来越差,企业单一流量入口保持增长的时代结束.小程序二维码多入口的访问形式能够帮助企业夺得更多先机,随着微信搜索的发布亦将为你带来更多流量,小程序的收录属性也让用户可以更便捷的找到你,应用你,以保证黏住用户. 1.小程序商城是什么? 随着微信小程序的爆发,赢在移动也迎来了商机,因为小程序商城需要经过二次开发,才具备下单.购买支付.分享返佣等功能. 就像微信

每日优鲜小程序订制开发

每日优鲜小程序订制开发[陈经理 180-2406-2897(微/电)]每日优鲜小程序开发,每日优鲜小程序APP开发,每日优鲜微信小程序订制开发 小程序虽已上线9个月,但在微信生态中还非常年轻,正处于学习奔跑的阶段.而且,许多商家对于如何正确获得第一批种子用户,并不十分清楚.今天,就以如何定位种子用户?种子用户在哪里获得?用什么方法沉淀用户?这三个方面,帮助商家解决这一问题. 商家先要知道,自己的小程序能解决用户什么痛点,满足什么需求,和其他类似产品的差异化在哪里.然后,才能给种子用户画像,如性别

(转)快速了解微信小程序的使用,一个根据小程序的框架开发的todos app

微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程,做了一个常规的todo app. 这个app基于微信小程序的平台,实现了todo app的常规功能,同时为了让它更接近实际的工作场景,也用到了loading与toast这两个组件来完成一些操作的交互与反馈. 这个平台给我的直观感受是,技术层面,它跟vue有相似性,但是远没有vue强大:开发时候的思路