Форум программистов, компьютерный форум CyberForum.ru

Инициализация переменной - Android

Восстановить пароль Регистрация
 
Alradalion
 Аватар для Alradalion
86 / 86 / 40
Регистрация: 13.09.2013
Сообщений: 342
16.06.2015, 16:55     Инициализация переменной #1
Добрый день. Написал простую программу и не могу разобраться, глюк в программе или я чего-то допонять не могу:
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;


public class MainActivity extends Activity {
private int mCountCat = 0;
private int mCountСrows = 0;
TextView helloTextView = (TextView)findViewById(R.id.textView);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

public void onClickCats(View view){
helloTextView.setText("Я насчитал " + ++mCountCat + " котов и " + mCountСrows + "ворон" );
}

public void onClickCrows(View view) {
helloTextView.setText("Я насчитал " + mCountCat + " котов и " + ++mCountСrows + "ворон");
}
}
Если писать код так, то программа падает при запуске на эмуляторе.
Если же вот так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
 
 
public class MainActivity extends Activity {
    private int mCountCat = 0;
    private int mCountСrows = 0;
    TextView helloTextView;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
 
    public void onClickCats(View view){
        helloTextView = (TextView)findViewById(R.id.textView);
        helloTextView.setText("Я насчитал " + ++mCountCat + " котов и " + mCountСrows + "ворон" );
    }
 
    public void onClickCrows(View view) {
 
        helloTextView = (TextView)findViewById(R.id.textView);
        helloTextView.setText("Я насчитал " + mCountCat + " котов и " + ++mCountСrows + "ворон");
    }
}
То программа работает, но не хотелось бы два раза инициировать одним и тем же.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2015, 16:55     Инициализация переменной
Посмотрите здесь:

Android Содержимое переменной в качестве имени переменной
Android ошибка переменной
Android Инициализация OpenGL ES
Android Описание переменной, комментарий
Android Инициализация базы данных
Чтение и конвертация переменной Android
Обнуление переменной по времени Android
Android Не получается работать с переменной
Сохранение переменной Android
Android Вывод переменной в ActionBar
Сохранение данных из переменной Android
Android Динамическая инициализация ImageView

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
androbro
312 / 272 / 51
Регистрация: 17.10.2014
Сообщений: 817
16.06.2015, 17:05     Инициализация переменной #2
Alradalion, инициализируйте переменную в onCreate() после setContentView()
klaim
0 / 0 / 0
Регистрация: 17.06.2015
Сообщений: 9
18.06.2015, 09:17     Инициализация переменной #3
Это не правильно так как findViewById ищет уже когда элементы загружены, а их загрузка происходит в setContentView(R.layout.activity_main);

Соответственно в Вашем случае программа пытается найти что то в пустой активности и конечно крашиться
Alradalion
 Аватар для Alradalion
86 / 86 / 40
Регистрация: 13.09.2013
Сообщений: 342
18.06.2015, 09:54  [ТС]     Инициализация переменной #4
Благодарю за пояснения) Будем потихоньку осваивать дальше
Yandex
Объявления
18.06.2015, 09:54     Инициализация переменной
Ответ Создать тему
Опции темы

Текущее время: 19:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru