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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Alradalion
96 / 96 / 44
Регистрация: 13.09.2013
Сообщений: 385
#1

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

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

Содержимое переменной в качестве имени переменной - Программирование Android
Подскажите пожалуйста возможно ли использовать содержимое строковой переменной (допустим str="TextView1") в качестве имени переменной? ...

Инициализация OpenGL ES - Программирование Android
Вечер добрый, товарищи. Пытаюсь инициализировать область GLSurfaceView в части экрана. Как-то не очень выходит. Подскажите? Код: ...

Инициализация масива в массиве - Программирование Android
Здравствуйте есть класс модели структуры public static class Exams{ public int id; public String discipline; ...

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

Инициализация базы данных - Программирование Android
Есть главная активити + 3 фрагмента. Из фрагментов вызываются AsyncTask и результаты пишутся в DB. Постоянно вижу в логах ошибки на...

Инициализация View и задание начальных значений - Программирование Android
Приветствую. Есть вьюха: <view android:background="@color/backgroundColor" ...

Инициализация переменной - C++
class cRectangle{ public: cRectangle(); ~cRectangle(); void Rect(char h_symb, char v_symb, int init_x, int init_y,...

Инициализация переменной - C++
#include <iostream> #include <fstream> using namespace std; struct Chisla { int chislo; Chisla* next; }; Chisla*...

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

Инициализация переменной в классе - C++
Пытаюсь инициализировать в классе переменную и дальше ее использовать class Lines { double PI = 3.141592653589793238462; void...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 839
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
96 / 96 / 44
Регистрация: 13.09.2013
Сообщений: 385
18.06.2015, 09:54  [ТС]     Инициализация переменной #4
Благодарю за пояснения) Будем потихоньку осваивать дальше
Yandex
Объявления
18.06.2015, 09:54     Инициализация переменной
Ответ Создать тему
Опции темы

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