当前位置: 首页 > 知识库问答 >
问题:

Android Studio应用程序在点击按钮后不断崩溃

壤驷瑾瑜
2023-03-14

我是一个java初学者,但我试图构建练习,我遇到了这个问题。用户输入捐赠,按下按钮,捐赠的值就会增加。我写了整个代码,但当我点击按钮添加捐款计数时,应用程序崩溃了。我遵循老师的所有教诲。我在活动中创建了一个方法,在ui构建器中,我转到单击按钮属性并将其设置为该方法。它应该很顺利,但每当我点击按钮时,它就崩溃了。这是我的活动,我将onClick属性设置为ComputeDoniversity。

public void computeDonation(View v){

    String addedText = ((EditText)findViewById(R.id.AmountText)).getText().toString();

    DonationModel donation = new DonationModel(addedText);
    String answer = donation.calcDonation();

    ((TextView)findViewById(R.id.totalText)).setText(answer);
}

这是模型:

String textAdded;
double addedDonation;

public DonationModel(String y) {
    textAdded = y;
}

public String calcDonation(){
    double counter = Double.parseDouble(textAdded);
    addedDonation += counter;

    Locale locale = new Locale("en", "CA");
    NumberFormat fmt = NumberFormat.getCurrencyInstance(locale);

    return fmt.format(addedDonation);

}

Ive甚至尝试不使用数字格式,只是想看看它是否会返回到活动中,但它没有。顺便说一句,对于我的课程,我使用的是一个旧版本的android Studio。

这是logcat:

共有1个答案

齐成和
2023-03-14

看起来您的textAdded是一个空字符串,这会导致NumberFormatException并使应用程序崩溃。要防止这种情况发生,可以做的是在解析textAdded之前检查它是否为空:

public String calcDonation() {
    if (TextUtils.isEmpty(textAdded)) {
        //textAdded is empty, so just return an empty String
        return "";
    }
    //We're sure that textAdded has a value, so we can try to parse it
    double counter = Double.parseDouble(textAdded);
    addedDonation += counter;

    Locale locale = new Locale("en", "CA");
    NumberFormat fmt = NumberFormat.getCurrencyInstance(locale);

    return fmt.format(addedDonation);
} 

或者只是防止在用户在EditText视图中输入值之前调用该方法:

public void computeDonation(View v){
    String addedText = ((EditText)findViewById(R.id.AmountText)).getText().toString();
    if (TextUtils.isEmpty(textAdded)) {
        Toast.makeText(context, "Please enter a valid number", Toast.LENGTH_SHORT).show();
    } else {
        DonationModel donation = new DonationModel(addedText);
        String answer = donation.calcDonation();
        ((TextView)findViewById(R.id.totalText)).setText(answer);
    }
}
 类似资料:
  • } 以下是我从logcat收到的错误:

  • 在logcat我看到了这个- 需要关于发生了什么以及如何解决的建议。我使用的是android studio北极狐2020.3.1补丁3。

  • 这是崩溃错误logcat,每次我时钟在我的寄存器btn应用程序崩溃。 我的模拟器是在Android模拟器设备上的2gb ram。 2019-09-22 16:36:39.307 6454-6454/com。康奈克斯。connexsocial E/AndroidRuntime:致命异常:主进程:com。康奈克斯。connexsocial,PID:6454Android系统。所容纳之物Activity

  • 每次我点击按钮1,我的应用程序就会崩溃。同一活动中的另一个按钮可以正常工作。我已经试过更换按钮和代码了。控制台中没有错误。

  • 问题内容: 我一直试图在Eclipse中制作我的第一个android应用程序(一个简单的温度转换器),但是当我单击手机上的按钮时,该应用程序崩溃了。这是完整的Java代码 单击按钮时的LogCat 最后是按钮的xml 我不确定如何解决此问题,因此希望有人可以提供帮助。谢谢。 问题答案: 首先初始化您的按钮,然后将onclicklistener设置为它们 同样设置另一个按钮

  • 我一直在自己编程一个应用程序,但每次我点击一个按钮,它就会遇到一些问题(因为问题出在它的OnCreate方法上)。我把它缩小到我认为是什么原因,似乎是这条线: