gpt4 book ai didi

java - Android应用程序计算错误和崩溃

转载 作者:太空狗 更新时间:2023-10-29 15:52:06 24 4
gpt4 key购买 nike

伙计们,我在这里尝试通过从 edittext 的 中获取字符串来获取 inputs(day, month, year) 然后将其转换为 int 并使添加然后显示它。 我认为代码是错误的,因为当我尝试运行它时,应用程序崩溃了,如果我删除了我标记为“//error”的那 3 行,它不会崩溃,但该功能仍然无法正常工作。 你能帮我吗??

package com.example.bibiwars.skills;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;


public class Age extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_age);

Button getage = (Button) findViewById(R.id.getage);
EditText ddtext = (EditText) findViewById(R.id.dd);
String dds = ddtext.getText().toString();
final int dd = Integer.parseInt(dds); //error
EditText mmtext = (EditText) findViewById(R.id.mm);
String mms = mmtext.getText().toString();
final int mm = Integer.parseInt(mms); //error
EditText yyyytext = (EditText) findViewById(R.id.yyyy);
String yyyys = yyyytext.getText().toString();
final int yyyy = Integer.parseInt(yyyys); //error
final TextView output = (TextView) findViewById(R.id.output);

getage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
output.setText("you wrote:" + (dd + mm + yyyy));
}
});
}}

最佳答案

试试这个

public class Age extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_age);

Button getage = (Button) findViewById(R.id.getage);
EditText ddtext = (EditText) findViewById(R.id.dd);

EditText mmtext = (EditText) findViewById(R.id.mm);

EditText yyyytext = (EditText) findViewById(R.id.yyyy);

final TextView output = (TextView) findViewById(R.id.output);

getage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

String dds = ddtext.getText().toString();
int dd = Integer.parseInt(dds);

String mms = mmtext.getText().toString();

int mm = Integer.parseInt(mms);

String yyyys = yyyytext.getText().toString();
int yyyy = Integer.parseInt(yyyys);
output.setText("you wrote:" + (dd + mm + yyyy));
}
});
}}

同样在将 String 转换为 Int 之前检查是否为 null

if (!TextUtils.isEmpty(yyyys))
{
int yyyy = Integer.parseInt(yyyys);
}

编辑

onCreate() 方法中,没有数据填充,所以它总是抛出 NullPointerExceptionNumberFormatException - 如评论中所述作者:@Roberto Tellez Ibarra

关于java - Android应用程序计算错误和崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31386565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com