Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Alradalion
105 / 105 / 75
Регистрация: 13.09.2013
Сообщений: 416
#1

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

16.06.2015, 16:55. Просмотров 325. Ответов 3
Метки нет (Все метки)

Добрый день. Написал простую программу и не могу разобраться, глюк в программе или я чего-то допонять не могу:
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 + "ворон");
    }
}
То программа работает, но не хотелось бы два раза инициировать одним и тем же.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2015, 16:55
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Инициализация переменной (Программирование Android):

Содержимое переменной в качестве имени переменной
Подскажите пожалуйста возможно ли использовать содержимое строковой переменной...

Инициализация OpenGL ES
Вечер добрый, товарищи. Пытаюсь инициализировать область GLSurfaceView в части...

Динамическая инициализация ImageView
Привет, подскажите как реализовать инициализацию ImageView, когда их кол-во...

Инициализация базы данных
Есть главная активити + 3 фрагмента. Из фрагментов вызываются AsyncTask и...

Инициализация масива в массиве
Здравствуйте есть класс модели структуры public static class Exams{ ...

Инициализация View и задание начальных значений
Приветствую. Есть вьюха: <view ...

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

Соответственно в Вашем случае программа пытается найти что то в пустой активности и конечно крашиться
0
Alradalion
105 / 105 / 75
Регистрация: 13.09.2013
Сообщений: 416
18.06.2015, 09:54  [ТС] #4
Благодарю за пояснения) Будем потихоньку осваивать дальше
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2015, 09:54
Привет! Вот еще темы с решениями:

Инициализация переменной
#include <iostream> #include <fstream> using namespace std; struct Chisla...

Инициализация переменной
Приветствую уважаемые пользователи cyberforum! У меня появился вопрос по...

Инициализация переменной
Привет, как сделать чтобы переменной присваивалось значение если я ничего не...

Инициализация переменной
class cRectangle{ public: cRectangle(); ~cRectangle(); void...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru