Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我不知道是什么';我的代码有问题,但我的程序一直崩溃_Java_Android - Fatal编程技术网

Java 我不知道是什么';我的代码有问题,但我的程序一直崩溃

Java 我不知道是什么';我的代码有问题,但我的程序一直崩溃,java,android,Java,Android,没有语法错误,从逻辑上讲,我觉得一切都很好。我已经试着调试这段代码好几天了,我不明白为什么它会崩溃。我的代码中有一个if/else部分,它完成了大部分工作,这是唯一一个它不断崩溃的部分,其他部分工作正常 public void Convert(View v) { String jdate = editText1.getText().toString(); String sdate = editText2.getText().toString();

没有语法错误,从逻辑上讲,我觉得一切都很好。我已经试着调试这段代码好几天了,我不明白为什么它会崩溃。我的代码中有一个if/else部分,它完成了大部分工作,这是唯一一个它不断崩溃的部分,其他部分工作正常

public void Convert(View v)
    {
        String jdate = editText1.getText().toString();
        String sdate = editText2.getText().toString();
        Calendar date = Calendar.getInstance();

            //converts julian date to calendar date
            if (!jdate.isEmpty() && sdate.isEmpty())
            {
                jdate = String.format("%04d", jdate);
                int intyear = Integer.parseInt(Character.toString(jdate.charAt(0)));
                int intdayofyear = Integer.parseInt(jdate.substring(1));
                if (intdayofyear > 365) intdayofyear = 365;
                editText1.setText(intyear + intdayofyear);
                String year = Integer.toString(date.get(Calendar.YEAR));
                year = year.substring(0, 3) + Character.toString(jdate.charAt(0));
                intyear = Integer.parseInt(year);
                date.set(Calendar.YEAR, intyear);
                date.set(Calendar.DAY_OF_YEAR, intdayofyear);
                editText2.setText(Calendar.MONTH + "/" + Calendar.DAY_OF_MONTH + "/" + Calendar.YEAR);
                datePicker1.init(
                date.get(Calendar.YEAR), 
                date.get(Calendar.MONTH), 
                date.get(Calendar.DAY_OF_MONTH), new OnDateChangedListener(){

                    @Override
                 public void onDateChanged(DatePicker view, 
                   int year, int monthOfYear,int dayOfMonth) {
                        editText2.setText(monthOfYear+1 + "/" + dayOfMonth + "/" + year);
                }});
            }

这应该做的是将一个4位数的数字转换成日历日期,并显示在日期选择器和文本字段上。

不清楚实际问题是什么,但这里有一个问题:

String.format
需要一个整数参数来返回
字符串
,否则将抛出
IllegalFormatConversionException

jdate = String.format("%04d", jdate);
                              ^ 

SimpleDataFormat
可用于格式化日期

哪一行导致崩溃?你有stacktrace吗?你能把日志贴出来吗?