Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.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 数字文本字段上的setText将强制关闭应用程序_Java_Android_String_Split - Fatal编程技术网

Java 数字文本字段上的setText将强制关闭应用程序

Java 数字文本字段上的setText将强制关闭应用程序,java,android,string,split,Java,Android,String,Split,我在设置编辑文本的初始输入时遇到了问题。每当我传递包含前一个活动中的字符串的意图时,它都会导致强制关闭 我的程序的主要要点是,前一个活动向editText活动发送包含字符串的意图。如果未初始化,EditText为空,否则,它们包含上一屏幕的TextView中显示的值。这是我的密码: EditText month, day, year; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-

我在设置编辑文本的初始输入时遇到了问题。每当我传递包含前一个活动中的字符串的意图时,它都会导致强制关闭

我的程序的主要要点是,前一个活动向editText活动发送包含字符串的意图。如果未初始化,EditText为空,否则,它们包含上一屏幕的TextView中显示的值。这是我的密码:

EditText month, day, year;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.lab2_082588birthday);

    Intent startUp = getIntent();
    String receivedString = startUp.getStringExtra(Lab2_082588part2.BIRTHDAY_STRING);

    if(receivedString.trim().length() > 0){
        String[] separated = receivedString.split("/");

        int stringMonth = Integer.parseInt(separated[0]);
        int stringDay = Integer.parseInt(separated[1]);
        int stringYear = Integer.parseInt(separated[2]);

        month.setText(stringMonth);
        day.setText(stringDay);
        year.setText(stringDay);

    }
}
这是我的日志猫

07-06 15:05:19.918: E/AndroidRuntime(276): Caused by: java.lang.NullPointerException

07-06 15:05:19.918: E/AndroidRuntime(276):  at com.android.rondrich.Lab2_082588birthday.onCreate(Lab2_082588birthday.java:34)

07-06 15:05:19.918: E/AndroidRuntime(276):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)

07-06 15:05:19.918: E/AndroidRuntime(276):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)

首先初始化textView的
setContentView(R.layout.lab2082588第28天)作为:

month = (TextView)findViewById(R.id.month);
 day = (TextView)findViewById(R.id.day);
 month = (TextView)findViewById(R.id.year);
month.setText(stringMonth+"");
day.setText(stringDay+"");
year.setText(stringDay+"");
然后将
Integer
值设置为
TextView
,如下所示:

month = (TextView)findViewById(R.id.month);
 day = (TextView)findViewById(R.id.day);
 month = (TextView)findViewById(R.id.year);
month.setText(stringMonth+"");
day.setText(stringDay+"");
year.setText(stringDay+"");

如后所述,提供logcat: 在将字符串配对为int之前检查数组长度 :


首先初始化textView的
setContentView(R.layout.lab2082588第28天)作为:

month = (TextView)findViewById(R.id.month);
 day = (TextView)findViewById(R.id.day);
 month = (TextView)findViewById(R.id.year);
month.setText(stringMonth+"");
day.setText(stringDay+"");
year.setText(stringDay+"");
然后将
Integer
值设置为
TextView
,如下所示:

month = (TextView)findViewById(R.id.month);
 day = (TextView)findViewById(R.id.day);
 month = (TextView)findViewById(R.id.year);
month.setText(stringMonth+"");
day.setText(stringDay+"");
year.setText(stringDay+"");

如后所述,提供logcat: 在将字符串配对为int之前检查数组长度 :


你必须换这条线

    month.setText(stringMonth);
    day.setText(stringDay);
    year.setText(stringDay);
bcz stringMonth、stringDay等都是整数,您必须在textview中以这种方式进行设置

    month.setText(""+stringMonth);
    day.setText(""+stringDay);
    year.setText(""+stringDay);
另一种方式是

    month.setText(String.valueOf(stringMonth));
    day.setText(String.valueOf(stringDay));
    year.setText(String.valueOf(stringDay));

你必须换这条线

    month.setText(stringMonth);
    day.setText(stringDay);
    year.setText(stringDay);
bcz stringMonth、stringDay等都是整数,您必须在textview中以这种方式进行设置

    month.setText(""+stringMonth);
    day.setText(""+stringDay);
    year.setText(""+stringDay);
另一种方式是

    month.setText(String.valueOf(stringMonth));
    day.setText(String.valueOf(stringDay));
    year.setText(String.valueOf(stringDay));

如果
receivedString
的格式不能确保它有两个斜杠(“/”),则字符串数组
分隔的
将不会有您需要的3个值

这将导致出现
IndexOutOfBoundsException

编辑:


必须用反斜杠转义斜杠字符
“\/”

如果
接收字符串的格式未确保其具有两个斜杠(“/”),则字符串数组
分隔的
将不具有所需的3个值

这将导致出现
IndexOutOfBoundsException

编辑:



你必须用反斜杠转义斜杠字符
“\/”

我们这里不是魔术师,没有任何代码和错误跟踪。我们什么都不能说。我想你忘了粘贴代码了。你说:这是我的代码这是我的代码你的代码在哪里???对不起,在标签区不小心按了回车键看我的答案,也在评论中..我们在这里不是魔术师,没有任何代码和错误跟踪。我们什么都不能说。我想你忘了粘贴代码了。你说:这是我的代码这是我的代码你的代码在哪里???对不起,不小心在标签区域按了回车键看我的答案,也在评论中..我已经考虑过了。先前的活动已将receivedString初始化为“00/00/0000”。您的日志显示错误发生在第34行。代码中是哪一行?int-stringMonth=Integer.parseInt(分隔为[0]);这个你必须用反斜杠转义斜杠字符,我已经考虑过了。先前的活动已将receivedString初始化为“00/00/0000”。您的日志显示错误发生在第34行。代码中是哪一行?int-stringMonth=Integer.parseInt(分隔为[0]);你必须用反斜杠“\/”
转义斜杠字符,我明白了,问题是我在将数组赋给字符串之前忘记了输入if语句。我真傻。非常感谢你!我也尝试过很多次,但当我使用split(“/”)在“/”字符串的基础上拆分字符串时,字符串不会在数组中溢出。因此,请尝试使用其他Saperator或split(“\/”)或split regex将字符串拆分到数组。Woops,对不起,imran先生。第一次在这里。我以为勾选是为了多个答案。你的建议奏效了。谢谢,sirI,问题是在将数组赋给字符串之前,我忘了输入if语句。我真傻。非常感谢你!我也尝试过很多次,但当我使用split(“/”)在“/”字符串的基础上拆分字符串时,字符串不会在数组中溢出。因此,请尝试使用其他Saperator或split(“\/”)或split regex将字符串拆分到数组。Woops,对不起,imran先生。第一次在这里。我以为勾选是为了多个答案。你的建议奏效了。谢谢你,先生