Урок 10. Оптимизируем реализацию обработчиков.
Re: Урок 10. Оптимизируем реализацию обработчиков.
Попыталась добавить третью кнопку по примеру... Как только я начинаю менять что-то сама, всё запарывается, приложение просто закрывается в эмуляторе((( Хотя при компиляции ошибок никаких нет.. Не понимаю где ошибка, вот код:
(выделила то что сама дописала)
(выделила то что сама дописала)
- Вложения
-
- MainActivity.java
- 2.jpg (174.06 КБ) 14215 просмотров
-
- main.xml
- 1.jpg (168.57 КБ) 14215 просмотров
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Урок 10. Оптимизируем реализацию обработчиков.
Чую статья по работе с поиском ошибок средствами самого Андроида, стала актуальной как никогда...
Раз
[syntax=java5]public class MainActivity extends Activity implements OnClickListener {[/syntax]
Два
[syntax=java5]btnOk.setOnClickListener(this);[/syntax]
Ну так в примере по другому. Вот вы торопитесь, тем самым сами себе отстреливая ногу глупыми ошибками.Попыталась добавить третью кнопку по примеру..
Раз
[syntax=java5]public class MainActivity extends Activity implements OnClickListener {[/syntax]
Два
[syntax=java5]btnOk.setOnClickListener(this);[/syntax]
Re: Урок 10. Оптимизируем реализацию обработчиков.
no-- писал(а):Чую статья по работе с поиском ошибок средствами самого Андроида, стала актуальной как никогда...Ну так в примере по другому. Вот вы торопитесь, тем самым сами себе отстреливая ногу глупыми ошибками.Попыталась добавить третью кнопку по примеру..
Раз
[syntax=java5]public class MainActivity extends Activity implements OnClickListener {[/syntax]
Два
[syntax=java5]btnOk.setOnClickListener(this);[/syntax]
Все заработало, спасибо!
Пересмотрела видео и увидела, что промелькнуло "implements OnClickListener", а в текстовой версии урока этого нет. Поэтому и ошибку выдавал и просил ставить скобки перед this)
Re: Урок 10. Оптимизируем реализацию обработчиков.
mozilalvfg, NullPointerException - это самая легкая ошибка. Щелкай на строку ниже, где адрес в твоей программе at android.app.Activity.findViewById(Activity.java:1794) и затем в этой строке ищи использование переменных, которые не инициализированы (не созданы, а просто объявлены, или даже не объявлены) выше.
Последний раз редактировалось Foenix 10 сен 2013, 17:24, всего редактировалось 1 раз.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 10. Оптимизируем реализацию обработчиков.
а я думаю, извините за офф, что кнопка с таким названием вообще нежизнеспособна.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
-
- Сообщения: 1
- Зарегистрирован: 13 сен 2013, 19:57
Re: Урок 10. Оптимизируем реализацию обработчиков.
Может ли eclipse автоматически генерировать код обработчиков как это делает Visual Studio
по двойному щелчку на выбранном элементе ?
по двойному щелчку на выбранном элементе ?
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Урок 10. Оптимизируем реализацию обработчиков.
Конечно может. Только как, с ходу не скажу. Добавьте интерфейс, наведите на него мышкой когда его эклипс подчеркнет, он должен предложить вариант вставки нереализованных методов, думаю там же можно и найти Hot Keys
Re: Урок 10. Оптимизируем реализацию обработчиков.
по ctrl+пробел дорисовывает вроде
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 10. Оптимизируем реализацию обработчиков.
Ребят, подскажите пожалуйста (очень выручите...что-то не могу я догнать) как последним методом (который не показан в уроке) правильно сделать все??? Если добавите скниры - еще лучше будет...нагляднее. Вот...=)
Re: Урок 10. Оптимизируем реализацию обработчиков.
ищи атрибут кнопки "onClick" в граф. редакторе или допиши его в xml формы android:onClick="", в кавычках должен быть твой будущий обработчик, т.е. пишешь android:onClick="clicked" в xml, а в классе
public void clicked(View v){
//обработка нажатия на кнопку
}
public void clicked(View v){
//обработка нажатия на кнопку
}
Re: Урок 10. Оптимизируем реализацию обработчиков.
Решил поэкспериментировать, создал новую кнопку
String tt;
...
case R.id.myBtn:
tt = Integer.toString(v.getId());
tvOut.setText(tt);
break;
Результат выражения: 2131230724
Теперь открываю файл R.java
public static final int myBtn=0x7f080004;
Вопрос: Из выражения switch (v.getId()) что за ID храниться в v.getId() ?
(просто любопытно, на практике это никогда наверно не понадобиться)
String tt;
...
case R.id.myBtn:
tt = Integer.toString(v.getId());
tvOut.setText(tt);
break;
Результат выражения: 2131230724
Теперь открываю файл R.java
public static final int myBtn=0x7f080004;
Вопрос: Из выражения switch (v.getId()) что за ID храниться в v.getId() ?
(просто любопытно, на практике это никогда наверно не понадобиться)
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.
Свои сообщения можно редактировать - кнопка edit.
Re: Урок 10. Оптимизируем реализацию обработчиков.
разные системы счисления, в R.java хранятся в 16-ти, а v.getId возвращает integer который есть в 10-ти системы счисления... переведи 0x7f080004 в десятичную систему и получишь 2131230724
вот поексперементируй
и в Си подобных языках используется префикс 0х
вот поексперементируй
и в Си подобных языках используется префикс 0х
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 10. Оптимизируем реализацию обработчиков.
У меня вот этот момент:
работает только в таком виде
Код: Выделить всё
public class MainActivity extends Activity implements OnClickListener {
Код: Выделить всё
public class MainActivity extends Activity implements View.OnClickListener {
Re: Урок 10. Оптимизируем реализацию обработчиков.
Все дело в импортахIsaev писал(а):У меня вот этот момент:работает только в таком видеКод: Выделить всё
public class MainActivity extends Activity implements OnClickListener {
Код: Выделить всё
public class MainActivity extends Activity implements View.OnClickListener {
Личные сообщения с просьбой ответить на форуме или написать программу я просто удаляю, если я в хорошем настроении. Если в плохом добавляю автора в черный список. По любым другим вопросам feel free to write to me.
Re: Урок 10. Оптимизируем реализацию обработчиков.
Я, конечно, слоу, но всё работает и через установку в Layout. Просто надо у TextView установитьdlnsk писал(а): В результате эксперимента (android 2.2) обратил внимание что кнопка одинаково хорошо реагирует на оба способа, а вот TextView не желает реагировать на клик, если он привязан через android:onClick, но прекрасно реагирует через OnClickListener.
Код: Выделить всё
android:clickable="true"
Re: Урок 10. Оптимизируем реализацию обработчиков.
Простите, пожалуйста, за совсем уж тупой вопрос, но ответьте кому не сложно...
в строчке public void onClick(View v) что значит View v? Что здесь есть v и почему v?
в строчке public void onClick(View v) что значит View v? Что здесь есть v и почему v?
Re: Урок 10. Оптимизируем реализацию обработчиков.
View - это любой элемент на Activity, его можно назвать ещё компонент (Button, TextView, EditText и т.д.)Majard писал(а):Простите, пожалуйста, за совсем уж тупой вопрос, но ответьте кому не сложно...
в строчке public void onClick(View v) что значит View v? Что здесь есть v и почему v?
View v , где v - это переменная (можно вместо "v" написать свою переменную, тогда далее в коде нужно будет её указывать).
Это по смыслу тоже самое, что в коде
Integer i;
Урок 4 - посмотрите там на изображения
http://startandroid.ru/ru/uroki/vse-uro ... jstva.html
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.
Свои сообщения можно редактировать - кнопка edit.
Re: Урок 10. Оптимизируем реализацию обработчиков.
а все остальные слова в этой строчке вам понятны?Majard писал(а):Простите, пожалуйста, за совсем уж тупой вопрос, но ответьте кому не сложно...
в строчке public void onClick(View v) что значит View v? Что здесь есть v и почему v?
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 10. Оптимизируем реализацию обработчиков.
Спасибо. Теперь понятно)))
Re: Урок 10. Оптимизируем реализацию обработчиков.
Код: Выделить всё
package com.example.p0101_Listener;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView tvOut;
Button btnOk;
Button btnCancel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tvOut = (TextView) findViewById(R.id.tvOut);
btnOk = (Button) findViewById(R.id.btnOk);
btnCancel = (Button) findViewById(R.id.btnCancel);}
OnClickListener oclBtn = new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.btnOk:
tvOut.setText("Нажата кнопка ОК");
break;
case R.id.btnCancel:
tvOut.setText("Нажата кнопка Cancel");
break;
}
}
};
btnOk.setOnClickListener(oclBtn);
btnCancel.setOnClickListener(oclBtn);
}
btnOk.setOnClickListener(oclBtn);
btnCancel.setOnClickListener(oclBtn);
подчеркивает точку и oclBtn, помогите, в чем ошибка?