Manitu_PC
@Manitu_PC

Почему вылетает приложение Android при переходе на новое Activity?

Здравствуйте!
В приложении 5 пунктов меню. При нажатии происходит переход на новое окно. При переходе на калькулятор приложение выдает ошибку и закрывается. Раньше все работало - добавил код, и после началось. Закомментил добавленные строки - не помогло. Подскажите, в чем может быть причина? Вот файлы.
package com.example.fitness_application;

import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

/**
 * Created by Денис on 28.02.2017.
 */
public class ActivityCalc extends AppCompatActivity {

    private TextView Sum = (TextView) findViewById(R.id.textView9);
    public static final String APP_PREFERENCES = "mysettings";
    public static final String APP_PREFERENCES_SUM = "Sum"; // сумма в калькуляторе
    SharedPreferences mSettings;
    private double a, b, c, d;
    private double n = 0;

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

//        mSettings = getSharedPreferences(APP_PREFERENCES, Context.MODE_PRIVATE);
//
//        String strNickName = Sum.getText().toString();
//
//        SharedPreferences.Editor editor = mSettings.edit();
//        editor.putString(APP_PREFERENCES_SUM, strNickName);
//        editor.apply();
    }

    public void ClickMilk(View view) {
       a = 60;
       n = n + a;
       String N = Double.toString(n);
       Sum.setText(N);
    }

    public void ClickChick(View view) {
        b = 200;
        n = n + b;
        String N = Double.toString(n);
        Sum.setText(N);
    }

    public void ClickBuckwheat(View view) {
        c = 132;
        n = n + c;
        String N = Double.toString(n);
        Sum.setText(N);
    }

    public void ClickPaste(View view) {
        d = 588;
        n = n + d;
        String N = Double.toString(n);
        Sum.setText(N);
    }

//    public void ClickNewProd(View view) {
//
//    }

}

acf4e0eead5541c4b6745dc406dff7e6.png
  • Вопрос задан
  • 3706 просмотров
Решения вопроса 1
a13xsus
@a13xsus
Lazy developer
Стактрейс покажите, что-ли. Судя по скрину вылетает uncaught exception, вероятно Unable to instantiate activity ComponentInfo. Всё из-за того, что у вас до OnCreate инициализируется вьюха:

private TextView Sum = (TextView) findViewById(R.id.textView9);


Тут null, поскольку этот TextView ещё не существует. Нужно инициализировать в OnCreate, после setContentView():

public class ActivityCalc extends AppCompatActivity {
    private TextView Sum;
    ...
    
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_calc);
        ...
        Sum = (TextView) findViewById(R.id.textView9)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@red-barbarian
потому что в макете R.layout.activity_calc есть кнопки у которых в поле onClick описан метод которого нет в ActivityCalc.
ищите ошибку в activity_calc.xml
Ответ написан
Комментировать
@K0DiBEN
Step 1: Clean your project by clicking Project -> Clean.
Step 2: Rebuild your project by clicking Project -> Build All.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы