Kritika Rai Ответов: 1

"К сожалению, приложение перестало работать"


Что не так с кодом? Там написано: "К сожалению, приложение перестало работать". Я не могу понять, пожалуйста, помогите мне. Я новичок в android, поэтому мало что знаю о нем.

Что я уже пробовал:

package com.kritikafunmath.helpquest;

import android.content.Intent;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;


public abstract class details extends AppCompatActivity implements  AdapterView.OnItemSelectedListener {

    Spinner s1, s2, s3;
    String[] school_name = {"School of Computer Application", "School of Civil Engineering", "School of Computer Engineering",
            "School of Electrical Engineering", "School of Electronics Engineering",
            "School of Mechanical Engineering", "School of Humanities and Social Sciences", "School of Applied Sciences",
            "School of Management", "School of Biotechnology", "School of Rural Management", "School of Law",
            "School of Fashion Technology", "School of Film and Media Sciences", "School of Medicine"};

    int spinschool;
    int spindegree;

    Button b1;

    void populateDeg() {
        if (spinschool > 1 && spinschool < 7) {
            String[] engineering = {"BTech","MTech"};
            ArrayAdapter a = new ArrayAdapter(this, android.R.layout.simple_spinner_item, engineering);
            a.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            s2.setAdapter(a);
        }
    }

    void populateYear(){
        if (spindegree == 1) {
            String[] btech = {"First", "Second", "Third", "Fourth"};
            ArrayAdapter b = new ArrayAdapter(this, android.R.layout.simple_spinner_item, btech);
            b.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            s3.setAdapter(b);
        }
        else if (spindegree == 2) {
            String[] mtech = {"First", "Second"};
            ArrayAdapter c = new ArrayAdapter(this, android.R.layout.simple_spinner_item, mtech);
            c.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            s3.setAdapter(c);
        }

    }

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

        Toast.makeText(this, "Please select the School, Academic Degree and Academic Year in order to continue", Toast.LENGTH_LONG).show();

        ActionBar ab = getSupportActionBar();
        ab.setDisplayUseLogoEnabled(true);

        s1 = (Spinner) findViewById(R.id.spinner1);
        s2 = (Spinner) findViewById(R.id.spinner2);
        s3 = (Spinner) findViewById(R.id.spinner3);
        b1 = (Button) findViewById(R.id.b1);

        s1.setOnItemSelectedListener(this);
        ArrayAdapter aa = new ArrayAdapter(this, android.R.layout.simple_spinner_item, school_name);
        aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        s1.setAdapter(aa);

        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(details.this, subject.class);
                startActivity(i);
            }
        });


        s1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                String school = (String) parent.getItemAtPosition(position);

                if (school.matches("School of Computer Appication")) {
                    spinschool = 1;
                    populateDeg();
                    ;
                } else if (school.matches("School of Civil Engineering")) {
                    spinschool = 2;
                    populateDeg();
                } else if (school.matches("School of Computer Engineering")) {
                    spinschool = 3;
                    populateDeg();
                } else if (school.matches("School of Electrical Engineering")) {
                    spinschool = 4;
                    populateDeg();
                } else if (school.matches("School of Electronics Engineering")) {
                    spinschool = 5;
                    populateDeg();
                } else if (school.matches("School of Mechanical Engineering")) {
                    spinschool = 6;
                    populateDeg();
                } else if (school.matches("School of Humanities and Social Sciences")) {
                    spinschool = 7;
                    populateDeg();
                } else if (school.matches("School of Applied Sciences")) {
                    spinschool = 8;
                    populateDeg();
                } else if (school.matches("School of Management")) {
                    spinschool = 9;
                    populateDeg();
                } else if (school.matches("School of Biotechnology")) {
                    spinschool = 10;
                    populateDeg();
                } else if (school.matches("School of Rural Management")) {
                    spinschool = 11;
                    populateDeg();
                } else if (school.matches("School of Law")) {
                    spinschool = 12;
                    populateDeg();
                } else if (school.matches("School of Fashion Technology")) {
                    spinschool = 13;
                    populateDeg();
                } else if (school.matches("School of Film and Media Sciences")) {
                    spinschool = 14;
                    populateDeg();
                } else if (school.matches("School of Medicine")) {
                    spinschool = 15;
                    populateDeg();
                }

            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {
                Toast.makeText(details.this, "Please select the School to which subject belongs", Toast.LENGTH_LONG).show();
            }

        });

        s2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                String degree = (String) parent.getItemAtPosition(position);

                if (degree.matches("BTech") && (spinschool > 1 && spinschool < 7)) {
                    spindegree = 1;
                    populateYear();
                } else if (degree.matches("MTech") && (spinschool > 1 && spinschool < 7)) {
                    spindegree = 2;
                    populateYear();
                }

            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {
                Toast.makeText(details.this, "Please select the Academic Degree to continue", Toast.LENGTH_LONG).show();
            }

        });


    }


}

Richard MacCutchan

Вы объявили свой класс как абстрактный. Почему это так?

David Crow

Вы когда - нибудь проходили через код с помощью отладчика? У вас нет никакой проверки ошибок или блоков try/catch. Почему?

1 Ответов

Рейтинг:
0

Patrice T

Используя отладчик, вы получите важную информацию: положение, в котором находится остановка.

Существует инструмент, который позволяет вам видеть, что делает ваш код, его имя отладчик Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.
Когда вы не понимаете, что делает ваш код или почему он делает то, что он делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик - Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010 - YouTube[^]
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jdb.html[^]
https://www.jetbrains.com/idea/help/debugging-your-first-java-application.html[^]
Отладчик здесь, чтобы показать вам, что делает ваш код, и ваша задача-сравнить с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.


Kritika Rai

Спасибо :)