2

このページを開くと、アプリが予期せず停止します。スピナー オプションがなくても問題はありませんが、追加するとアプリがクラッシュします...

logcat テキストhttp://pastebin.com/umKP8iD0

    package com.calc;

    import android.app.Activity;
    import android.content.Intent;
    import android.net.Uri;
    import android.os.Bundle;
    import android.widget.Adapter;
    import android.widget.ArrayAdapter;
    import android.widget.EditText;
    import android.widget.Spinner;
    import android.widget.TextView;
    import android.widget.Button;
    import android.widget.TimePicker;
    import android.view.View;


    public class setup extends Activity
    {

        TextView start, end;
        TimePicker startTime, endTime;
        Spinner day;
    /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState)
        {
            String dayText[] = new String[6];
            start = (TextView) findViewById(R.id.textView1);
            end = (TextView) findViewById(R.id.textView2);
            startTime = (TimePicker) findViewById(R.id.timePicker1);
            endTime = (TimePicker) findViewById(R.id.timePicker2);
            day = (Spinner) findViewById(R.id.spinner1);
            dayText[0] = "Sunday";
            dayText[1] = "Monday";
            dayText[2] = "Tuesday";
            dayText[3] = "Wednesday";
            dayText[4] = "Thursday";
            dayText[5] = "Friday";
            dayText[6] = "Saturday";
            ArrayAdapter adapter = new ArrayAdapter(this,
                    android.R.layout.simple_spinner_item, dayText);
            day.setAdapter(adapter);
            super.onCreate(savedInstanceState);
            setContentView(R.layout.enterpage);
        }
    }

スピナーが間違って作成しているからでしょうか?

4

1 に答える 1

1

ビューIDを取得する前に使用する必要がありsetContentViewます...

ビューを設定する前に ID を取得しようとすると、null が返され、NPE の問題が発生します。

それを最初に移動すると、アプリが動作するはずです。

編集

また、アレイに十分なスロットを設定していません。6 つのスロットを要求し、そこに 7 つのアイテムを入れようとします。これを試して:

String daytext[] = new String[7];
于 2012-06-11T03:10:48.713 に答える