Страница 1 из 1

Нубский вопрос.

Добавлено: 16 июн 2013, 17:50
MsFox
Не нашел тему с нубо-вопросами, поэтому сюда :)

делал этот урок:
http://developer.alexanderklimov.ru/and ... droid3.php

Все по уроку, но застопорился тут:

Изображение

Красным подчеркивает butCrowsCounter2. И не хочет его воспринимать, при чем в уроке ничего не было об этом сказано.

И 2й вопрос.
"Слово tvHello будет подчёркнуто, так как мы ранее объявили этот элемент внутри метода butHello_Click(), из которого элемент недоступен в других методах. Поэтому поступим также, как с кнопкой - объявим метку на уровне класса и инициализируем её в методе onCreate()."
не понял половины, но правильно ли я осознал, что нужно просто добавить строку
TextView tvHello;
?

Во всяком случае ошибка пропала : )

Re: Нубский вопрос.

Добавлено: 16 июн 2013, 20:29
MsFox
1й вопрос закрыт.. Остался 2й :)

Re: Нубский вопрос.

Добавлено: 16 июн 2013, 23:26
Foenix
Если у вас вопрос к уроку, лучше и задавать его в соответсвующей ему теме.

Re: Нубский вопрос.

Добавлено: 17 июн 2013, 00:21
MsFox
Урок не с этого сайта :(
А там, где он выложен - форума нету.

Re: Нубский вопрос.

Добавлено: 17 июн 2013, 00:27
Foenix
на второй вопрос ответ - нет, не правильно. Ты просто объявил переменную. Может случиться так, что ты обратишься к ней откуда-нибудь и она будет null, Поэтому в онКриейт ты должен ей присвоить соответсвующее значение.

Re: Нубский вопрос.

Добавлено: 10 апр 2014, 16:19
Krushik
я тоже наткнулся та те же грабли..((
Foenix писал(а): Поэтому в онКриейт ты должен ей присвоить соответсвующее значение.
разъясните плз

Re: Нубский вопрос.

Добавлено: 10 апр 2014, 16:33
altwin
Krushik писал(а):я тоже наткнулся та те же грабли..((
Foenix писал(а): Поэтому в онКриейт ты должен ей присвоить соответсвующее значение.
разъясните плз
я конечно ленивый и тему с начала читать не буду, но onCreate - метод, который вызывается при запуске вашего приложения( http://developer.android.com/intl/ru/im ... ecycle.png ) и значит переменная которой вы присвоите значение в нем будет в памяти. В противном случае значение этой переменной либо не будет присвоенно либо может быть присвоенно после того, как вы попытаетесь к ней обратится.

Re: Нубский вопрос.

Добавлено: 10 апр 2014, 16:37
Krushik
altwin писал(а):
Krushik писал(а):я тоже наткнулся та те же грабли..((
Foenix писал(а): Поэтому в онКриейт ты должен ей присвоить соответсвующее значение.
разъясните плз
я конечно ленивый и тему с начала читать не буду, но onCreate - метод, который вызывается при запуске вашего приложения( http://developer.android.com/intl/ru/im ... ecycle.png ) и значит переменная которой вы присвоите значение в нем будет в памяти. В противном случае значение этой переменной либо не будет присвоенно либо может быть присвоенно после того, как вы попытаетесь к ней обратится.
как это реализовуется?

Re: Нубский вопрос.

Добавлено: 10 апр 2014, 16:39
altwin
Krushik писал(а):
altwin писал(а):
Krushik писал(а):я тоже наткнулся та те же грабли..((
Foenix писал(а): Поэтому в онКриейт ты должен ей присвоить соответсвующее значение.
разъясните плз
я конечно ленивый и тему с начала читать не буду, но onCreate - метод, который вызывается при запуске вашего приложения( http://developer.android.com/intl/ru/im ... ecycle.png ) и значит переменная которой вы присвоите значение в нем будет в памяти. В противном случае значение этой переменной либо не будет присвоенно либо может быть присвоенно после того, как вы попытаетесь к ней обратится.
как это реализовуется?
в методе присваиваете значение переменной, я честное слово понятие не имею, что тут может быть не понятно и как объяснить :( Думаю вам стоит почитать что то по основам программирования. Не стоит пытаться сразу лезть слишком далеко, даже разобраться с последними уроками на этом сайте без понимания основ, что такое, переменная, цикл и т.д. будет просто не возможно.

Re: Нубский вопрос.

Добавлено: 10 апр 2014, 16:42
Krushik
public class MainActivity extends Activity {

Button butCrowsCounter;
int count = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
butCrowsCounter = (Button)findViewById(R.id.butCrowsCounter);
butCrowsCounter.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
tvHello.setText("Я насчитал " + ++count + " ворон");
}
});

}
объясните нубу что нужно куда добавить чтоб корректно работало tvHello?

Re: Нубский вопрос.

Добавлено: 10 апр 2014, 16:45
altwin
Krushik писал(а):public class MainActivity extends Activity {

Button butCrowsCounter;
int count = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
butCrowsCounter = (Button)findViewById(R.id.butCrowsCounter);
butCrowsCounter.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
tvHello.setText("Я насчитал " + ++count + " ворон");
}
});

}
объясните нубу что нужно куда добавить чтоб корректно работало tvHello?
строку
[syntax=java5]TextView tvHello = (TextView)findViewById(R.id.textView1);[/syntax]
поместить в метод onCreate, у вас она в методе butHello_Click, вы его не вызываете и о этом методе Android ничего не знает, а метод onCreate он вызывает при старте приложения и переменная инициализируется.

Re: Нубский вопрос.

Добавлено: 10 апр 2014, 16:49
AliMan
Krushik писал(а): как это реализовуется?
:shock: Простите, вы спрашиваете как присвоить в методе onCreate компонент TextView? Если да, то у меня еще один вопрос - вы уроки на этом сайте проходили? Стойло пройти, а не просто просмотреть! Поверте это вам очень нужно! С самого начала и вдумчиво каждый урок, ручками печатайте, а не копипастите, разберитесь, что делается в каждой строчке. Очень советую.

Re: Нубский вопрос.

Добавлено: 10 апр 2014, 16:51
Krushik
altwin писал(а):
Krushik писал(а): [syntax=java5]TextView tvHello = (TextView)findViewById(R.id.textView1);[/syntax]
спс, а после чего эту строку нужно вставить?

Re: Нубский вопрос.

Добавлено: 10 апр 2014, 16:52
altwin
Krushik писал(а):
altwin писал(а):
Krushik писал(а): [syntax=java5]TextView tvHello = (TextView)findViewById(R.id.textView1);[/syntax]
спс, а после чего эту строку нужно вставить?
после этих двух.
[syntax=java5]super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);[/syntax]

Re: Нубский вопрос.

Добавлено: 10 апр 2014, 16:52
Krushik
AliMan писал(а):
Krushik писал(а): как это реализовуется?
:shock: Простите, вы спрашиваете как присвоить в методе onCreate компонент TextView? Если да, то у меня еще один вопрос - вы уроки на этом сайте проходили? Стойло пройти, а не просто просмотреть! Поверте это вам очень нужно! С самого начала и вдумчиво каждый урок, ручками печатайте, а не копипастите, разберитесь, что делается в каждой строчке. Очень советую.
там тоже уроки, и мне посоветовали сначала пройти там, а потом тут))

Re: Нубский вопрос.

Добавлено: 10 апр 2014, 16:55
altwin
Krushik писал(а):
AliMan писал(а):
Krushik писал(а): как это реализовуется?
:shock: Простите, вы спрашиваете как присвоить в методе onCreate компонент TextView? Если да, то у меня еще один вопрос - вы уроки на этом сайте проходили? Стойло пройти, а не просто просмотреть! Поверте это вам очень нужно! С самого начала и вдумчиво каждый урок, ручками печатайте, а не копипастите, разберитесь, что делается в каждой строчке. Очень советую.
там тоже уроки, и мне посоветовали сначала пройти там, а потом тут))
Для начала полезно было бы пройти уроки на этом сайте: http://docs.oracle.com/javase/tutorial/ ... sandbolts/
И вот этот курс: https://hexlet.org/course/sicp/

Re: Нубский вопрос.

Добавлено: 10 апр 2014, 16:56
Krushik
altwin писал(а):
Krushik писал(а):
AliMan писал(а):
Krushik писал(а): как это реализовуется?
:shock: Простите, вы спрашиваете как присвоить в методе onCreate компонент TextView? Если да, то у меня еще один вопрос - вы уроки на этом сайте проходили? Стойло пройти, а не просто просмотреть! Поверте это вам очень нужно! С самого начала и вдумчиво каждый урок, ручками печатайте, а не копипастите, разберитесь, что делается в каждой строчке. Очень советую.
там тоже уроки, и мне посоветовали сначала пройти там, а потом тут))
Для начала полезно было бы пройти уроки на этом сайте: http://docs.oracle.com/javase/tutorial/ ... sandbolts/
И вот этот курс: https://hexlet.org/course/sicp/
спс