Урок 9. Обработчики событий на примере Button.

Обсуждение уроков
Аватара пользователя
anber
Сообщения: 584
Зарегистрирован: 10 июн 2013, 15:05
Откуда: UA

Re: Урок 9. Обработчики событий на примере Button.

Сообщение anber » 01 июл 2013, 16:27

Kolonist писал(а):
anber писал(а): Я скопировал твой код из 2 твоих последних постов в новый проект, запустил и все работает.
Попробуй удалить с эмулятора твое приложение (1), закрыть среду разработки (2) и эмулятор (3) и перезапустить их.
Ох уж эти эмуляторы, действительно перезапуск Eclipse и эмулятора помогло.
В будущем надо наверное почеще перезапускать их, когда буду сталкиваться с подобными ошибками.
Хотя обидно, что дурит программа, а отдувается разработчик.


PS Спасибо за помощь!
Обычно помогает в еклипсе Project - Clean... и переустановить приложение на эмуляторе, но тот как ты проделал это уж наверняка.
Личные сообщения с просьбой ответить на форуме или написать программу я просто удаляю, если я в хорошем настроении. Если в плохом добавляю автора в черный список. По любым другим вопросам feel free to write to me.

aiTarget
Сообщения: 1
Зарегистрирован: 03 июл 2013, 11:33

Re: Урок 9. Обработчики событий на примере Button.

Сообщение aiTarget » 03 июл 2013, 11:54

Подскажите. Ругается textView1 cannot be resolved or is not a field
подчеркиват в 18 строчке R.id.textView1 и предлагает заменить на R.id.text1 0_o

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

package com.example.buttons;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
TextView textView1;
Button button1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView1 = (TextView) findViewById (android.R.id.textView1);
        button1 = (Button) findViewById (android.R.id.button1);
    }
    
    public void buton1clk (View v){
    	textView1.setText("text");
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
}

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 9. Обработчики событий на примере Button.

Сообщение Foenix » 03 июл 2013, 11:59

значит, нету такого у тебя в xml..
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Урок 9. Обработчики событий на примере Button.

Сообщение klblk » 03 июл 2013, 12:07

aiTarget писал(а):Подскажите. Ругается textView1 cannot be resolved or is not a field
подчеркиват в 18 строчке R.id.textView1 и предлагает заменить на R.id.text1 0_o

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

package com.example.buttons;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
TextView textView1;
Button button1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView1 = (TextView) findViewById (android.R.id.textView1);
        button1 = (Button) findViewById (android.R.id.button1);
    }
    
    public void buton1clk (View v){
    	textView1.setText("text");
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
}
вероятно вместо android.R.id.textView1 нужно написать просто R.id.textView1

taras.pv
Сообщения: 1
Зарегистрирован: 10 июл 2013, 18:02

Re: Урок 9. Обработчики событий на примере Button.

Сообщение taras.pv » 10 июл 2013, 18:20

А как заставить EditText реагировать на изменение данных? Есть ли соответствующий обработчик?

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Урок 9. Обработчики событий на примере Button.

Сообщение KamiSempai » 10 июл 2013, 18:31

taras.pv писал(а):А как заставить EditText реагировать на изменение данных? Есть ли соответствующий обработчик?
Все зависит от того когда вы хотите на это реагировать.
Если сразу то можно воспользоватся addTextChangedListener.
Если после потери фокуса то setOnFocusChangeListener
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

yura
Сообщения: 2
Зарегистрирован: 22 июл 2013, 10:54

Re: Урок 9. Обработчики событий на примере Button.

Сообщение yura » 22 июл 2013, 19:54

Какая философия стоит за точкой с запятой в следующем коде
OnClickListener oclBtnOk = new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub

}
};

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 9. Обработчики событий на примере Button.

Сообщение Foenix » 22 июл 2013, 20:08

конец оператора.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 9. Обработчики событий на примере Button.

Сообщение rezak90 » 22 июл 2013, 21:09

Foenix писал(а):вопрос года
нет, вот это вопрос года
yura писал(а):Какая философия стоит за точкой с запятой;
R.id.team
Политика на форуме запрещена

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 9. Обработчики событий на примере Button.

Сообщение Foenix » 23 июл 2013, 02:35

Юра, все остальное в этом длинном операторе вам понятно?
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 9. Обработчики событий на примере Button.

Сообщение rezak90 » 23 июл 2013, 07:38

Foenix писал(а):Юра, все остальное в этом длинном операторе вам понятно?
жжёшь... пять!
R.id.team
Политика на форуме запрещена

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Урок 9. Обработчики событий на примере Button.

Сообщение klblk » 23 июл 2013, 09:30

yura писал(а):Какая философия стоит за точкой с запятой в следующем коде
OnClickListener oclBtnOk = new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub

}
};
а я всё-таки попытаюсь на пальцах объяснить=)
Когда мы пишем что-то типа:
int a = 25;
это вопросов почему-то не вызывает(?).

в Вашем случае почти тоже самое (в визуальном понимании), только немного букв больше:
OnClickListener ~ int
oclBtnOk ~ a
= ~ =
new OnClickListener() {...} ~ 25
; ~ ;

вот какая-то такая философия)

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 9. Обработчики событий на примере Button.

Сообщение Foenix » 23 июл 2013, 12:49

Если Юре не понятно, я проще объясню ;) без аналогий
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

yura
Сообщения: 2
Зарегистрирован: 22 июл 2013, 10:54

Re: Урок 9. Обработчики событий на примере Button.

Сообщение yura » 25 июл 2013, 14:46

Если аналогия,которую вы привели верна,то OnClickListener это тип данных.new OnClickListener() {...} это конкретное содержание
этих данных.Хотелось бы понять,что это такое.

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Урок 9. Обработчики событий на примере Button.

Сообщение KamiSempai » 25 июл 2013, 15:36

OnClickListener - Это интерфейс.
new OnClickListener() {...} - Это реализация интерфейса.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

BluSky
Сообщения: 2
Зарегистрирован: 05 авг 2013, 17:17

Re: Урок 9. Обработчики событий на примере Button.

Сообщение BluSky » 05 авг 2013, 17:29

Изображение

У меня не показывает кириллицы буквы в эмуляторе и в мою смартфоне, это проблема буквы в tvOut.setText ("нажать кнопку ОК") Знаете, как исправить эту проблему?

BluSky
Сообщения: 2
Зарегистрирован: 05 авг 2013, 17:17

Re: Урок 9. Обработчики событий на примере Button.

Сообщение BluSky » 05 авг 2013, 23:29

Компиляция в IDE Eclipse и IntelliJ все нормально показывает кириллицы, а в Android Studio проблема кириллицы ...

Arhiza
Сообщения: 1
Зарегистрирован: 10 авг 2013, 17:41

Re: Урок 9. Обработчики событий на примере Button.

Сообщение Arhiza » 10 авг 2013, 17:51

BluSky писал(а):Изображение

У меня не показывает кириллицы буквы в эмуляторе и в мою смартфоне, это проблема буквы в tvOut.setText ("нажать кнопку ОК") Знаете, как исправить эту проблему?
Для MainActivity.java (или для того файла, данные из которого отображаются иероглифами, если в твоем проекте по-другому называется) попробуй сделать перекодировку (File -> File Encoding) в Windows-1251.

stRong
Сообщения: 6
Зарегистрирован: 15 авг 2013, 22:53

Re: Урок 9. Обработчики событий на примере Button.

Сообщение stRong » 15 авг 2013, 23:21

Всем привет, я начинаю изучать основы java и параллельно программирование под android, но тут возникли сложности, а именно, я не понимаю часть кода:

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

OnClickListener oclBtnOk = new OnClickListener() {
       @Override
       public void onClick(View v) {
         // TODO Auto-generated method stub
 
       }
     }; 
Исходя из статьи OnClickListener - это интерфейс. Но интерфейс в джаве, насколько я знаю, не может иметь объектов и содержит только константы и абстрактные методы. Но при этом, переменная типа интерфейс может ссылаться на существующий объект класса, реализующего данный интерфейс, тем самым, данная переменная может получить доступ к методам, переопределенным в классе. Например:

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

 interface A {
void metod ( int i); } 

class B imlements A {
publick void metod(i) {
...
}
}

class Test {
public static void main() {
A ob = new B();
ob.metod(3445);
}
Т.е. в таком случае мне все понятно. Если я не прав, пожалуйста поправьте.
Итак, вернемся, собственно, к проблеме. Исходя из кода статьи, мы "создаем" объект интерфейса? (new OnClickListener() ). Или что мы тем самым делаем? И сразу переопределяем метод onClick, но в чем именно идет переопределение?
Хотелось бы услышать подробный ответ на эти вопросы. Заранее спасибо!

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 9. Обработчики событий на примере Button.

Сообщение Foenix » 15 авг 2013, 23:54

по-моему, мы создаем экземпляр анонимного внутреннего класса (реализующего интерфейс), который записываем в переменную oclBtnOk.

Только не поняла в чем именно проблема-то..
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Ответить