Страница 5 из 11

Re: Урок 10. Оптимизируем реализацию обработчиков.

Добавлено: 10 сен 2013, 12:17
Ivlianna
Попыталась добавить третью кнопку по примеру... Как только я начинаю менять что-то сама, всё запарывается, приложение просто закрывается в эмуляторе((( Хотя при компиляции ошибок никаких нет.. Не понимаю где ошибка, вот код:
(выделила то что сама дописала)

Re: Урок 10. Оптимизируем реализацию обработчиков.

Добавлено: 10 сен 2013, 12:55
Mikhail_dev
Чую статья по работе с поиском ошибок средствами самого Андроида, стала актуальной как никогда...
Попыталась добавить третью кнопку по примеру..
Ну так в примере по другому. Вот вы торопитесь, тем самым сами себе отстреливая ногу глупыми ошибками.
Раз
[syntax=java5]public class MainActivity extends Activity implements OnClickListener {[/syntax]
Два
[syntax=java5]btnOk.setOnClickListener(this);[/syntax]

Re: Урок 10. Оптимизируем реализацию обработчиков.

Добавлено: 10 сен 2013, 13:18
Ivlianna
no-- писал(а):Чую статья по работе с поиском ошибок средствами самого Андроида, стала актуальной как никогда...
Попыталась добавить третью кнопку по примеру..
Ну так в примере по другому. Вот вы торопитесь, тем самым сами себе отстреливая ногу глупыми ошибками.
Раз
[syntax=java5]public class MainActivity extends Activity implements OnClickListener {[/syntax]
Два
[syntax=java5]btnOk.setOnClickListener(this);[/syntax]

Все заработало, спасибо!
Пересмотрела видео и увидела, что промелькнуло "implements OnClickListener", а в текстовой версии урока этого нет. Поэтому и ошибку выдавал и просил ставить скобки перед this)

Re: Урок 10. Оптимизируем реализацию обработчиков.

Добавлено: 10 сен 2013, 17:21
Foenix
mozilalvfg, NullPointerException - это самая легкая ошибка. Щелкай на строку ниже, где адрес в твоей программе at android.app.Activity.findViewById(Activity.java:1794) и затем в этой строке ищи использование переменных, которые не инициализированы (не созданы, а просто объявлены, или даже не объявлены) выше.

Re: Урок 10. Оптимизируем реализацию обработчиков.

Добавлено: 10 сен 2013, 17:23
Foenix
а я думаю, извините за офф, что кнопка с таким названием вообще нежизнеспособна.

Re: Урок 10. Оптимизируем реализацию обработчиков.

Добавлено: 13 сен 2013, 20:08
Konstantin63
Может ли eclipse автоматически генерировать код обработчиков как это делает Visual Studio
по двойному щелчку на выбранном элементе ?

Re: Урок 10. Оптимизируем реализацию обработчиков.

Добавлено: 13 сен 2013, 23:11
Mikhail_dev
Конечно может. Только как, с ходу не скажу. Добавьте интерфейс, наведите на него мышкой когда его эклипс подчеркнет, он должен предложить вариант вставки нереализованных методов, думаю там же можно и найти Hot Keys

Re: Урок 10. Оптимизируем реализацию обработчиков.

Добавлено: 14 сен 2013, 22:23
Foenix
по ctrl+пробел дорисовывает вроде

Re: Урок 10. Оптимизируем реализацию обработчиков.

Добавлено: 24 сен 2013, 02:21
Karpovich
Ребят, подскажите пожалуйста (очень выручите...что-то не могу я догнать) как последним методом (который не показан в уроке) правильно сделать все??? Если добавите скниры - еще лучше будет...нагляднее. Вот...=)

Re: Урок 10. Оптимизируем реализацию обработчиков.

Добавлено: 24 сен 2013, 13:29
Kruler
ищи атрибут кнопки "onClick" в граф. редакторе или допиши его в xml формы android:onClick="", в кавычках должен быть твой будущий обработчик, т.е. пишешь android:onClick="clicked" в xml, а в классе
public void clicked(View v){
//обработка нажатия на кнопку
}

Re: Урок 10. Оптимизируем реализацию обработчиков.

Добавлено: 29 сен 2013, 13:38
trew
Решил поэкспериментировать, создал новую кнопку
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() ?
(просто любопытно, на практике это никогда наверно не понадобиться)

Re: Урок 10. Оптимизируем реализацию обработчиков.

Добавлено: 29 сен 2013, 13:54
rezak90
разные системы счисления, в R.java хранятся в 16-ти, а v.getId возвращает integer который есть в 10-ти системы счисления... переведи 0x7f080004 в десятичную систему и получишь 2131230724
вот поексперементируй
и в Си подобных языках используется префикс 0х

Re: Урок 10. Оптимизируем реализацию обработчиков.

Добавлено: 10 окт 2013, 09:58
Isaev
У меня вот этот момент:

Код: Выделить всё

public class MainActivity extends Activity implements OnClickListener {
работает только в таком виде

Код: Выделить всё

public class MainActivity extends Activity implements View.OnClickListener {

Re: Урок 10. Оптимизируем реализацию обработчиков.

Добавлено: 10 окт 2013, 10:40
anber
Isaev писал(а):У меня вот этот момент:

Код: Выделить всё

public class MainActivity extends Activity implements OnClickListener {
работает только в таком виде

Код: Выделить всё

public class MainActivity extends Activity implements View.OnClickListener {
Все дело в импортах

Re: Урок 10. Оптимизируем реализацию обработчиков.

Добавлено: 19 окт 2013, 08:08
Bringoff
dlnsk писал(а): В результате эксперимента (android 2.2) обратил внимание что кнопка одинаково хорошо реагирует на оба способа, а вот TextView не желает реагировать на клик, если он привязан через android:onClick, но прекрасно реагирует через OnClickListener.
Я, конечно, слоу, но всё работает и через установку в Layout. Просто надо у TextView установить

Код: Выделить всё

android:clickable="true"
? PROFIT! :)

Re: Урок 10. Оптимизируем реализацию обработчиков.

Добавлено: 06 ноя 2013, 18:18
Majard
Простите, пожалуйста, за совсем уж тупой вопрос, но ответьте кому не сложно...
в строчке public void onClick(View v) что значит View v? Что здесь есть v и почему v?

Re: Урок 10. Оптимизируем реализацию обработчиков.

Добавлено: 06 ноя 2013, 18:29
trew
Majard писал(а):Простите, пожалуйста, за совсем уж тупой вопрос, но ответьте кому не сложно...
в строчке public void onClick(View v) что значит View v? Что здесь есть v и почему v?
View - это любой элемент на Activity, его можно назвать ещё компонент (Button, TextView, EditText и т.д.)
View v , где v - это переменная (можно вместо "v" написать свою переменную, тогда далее в коде нужно будет её указывать).
Это по смыслу тоже самое, что в коде
Integer i;

Урок 4 - посмотрите там на изображения
http://startandroid.ru/ru/uroki/vse-uro ... jstva.html

Re: Урок 10. Оптимизируем реализацию обработчиков.

Добавлено: 06 ноя 2013, 22:34
Foenix
Majard писал(а):Простите, пожалуйста, за совсем уж тупой вопрос, но ответьте кому не сложно...
в строчке public void onClick(View v) что значит View v? Что здесь есть v и почему v?
а все остальные слова в этой строчке вам понятны?

Re: Урок 10. Оптимизируем реализацию обработчиков.

Добавлено: 07 ноя 2013, 06:16
Majard
Спасибо. Теперь понятно)))

Re: Урок 10. Оптимизируем реализацию обработчиков.

Добавлено: 17 ноя 2013, 14:28
StupIvan

Код: Выделить всё

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, помогите, в чем ошибка?