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

Обсуждение уроков
Аватара пользователя
n0tb0dy
Сообщения: 135
Зарегистрирован: 14 фев 2014, 09:42

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

Сообщение n0tb0dy » 10 апр 2014, 16:16

я ни чего не доказывал :) я просто спросил :)

видимо в других задачах такое нужно, в смысле использовать метод OnClickListener

возможно это дело привычки ну и задач приложения

в общем это был просто вопрос... я же только учусь :)

Аватара пользователя
n0tb0dy
Сообщения: 135
Зарегистрирован: 14 фев 2014, 09:42

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

Сообщение n0tb0dy » 10 апр 2014, 16:17

за участие в моем вопросе спасибо больше

Аватара пользователя
n0tb0dy
Сообщения: 135
Зарегистрирован: 14 фев 2014, 09:42

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

Сообщение n0tb0dy » 10 апр 2014, 16:19

altwin писал(а):а еще можете изучить код тут: https://github.com/android и погуглить почему они делают это по другому...
а что за примеры собраны в этом хабе?

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

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

Сообщение altwin » 10 апр 2014, 16:21

n0tb0dy писал(а):
altwin писал(а):а еще можете изучить код тут: https://github.com/android и погуглить почему они делают это по другому...
а что за примеры собраны в этом хабе?
это репозитории исходного кода android и всех приложений google для него. Т.е. к примеру, браузер вашего Android: https://github.com/android/platform_pac ... ps_browser , или приложение email: https://github.com/android/platform_packages_apps_email
и т.д.
Изображение

Аватара пользователя
VladGrey
Сообщения: 4
Зарегистрирован: 09 апр 2014, 11:42

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

Сообщение VladGrey » 11 апр 2014, 11:10

Прошу прощения.
Установил 8ю версию. В результате генерируется в исходных файлах значительно больше кода, чем в версии используемой для демонстрации.
Всегда возникает вопрос - А туда ли я вставляю изменения кода:
[syntax=java]package com.example.p0091_onclickbuttons;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends ActionBarActivity {

TextView tvOut;
Button btnOk;
Button btnCancel;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// найдем View-элементы
tvOut = (TextView) findViewById(R.id.tvOut);
btnOk = (Button) findViewById(R.id.btnOk);
btnCancel = (Button) findViewById(R.id.btnCancel);

OnClickListener oclBtnOk = new OnClickListener() {
@Override
public void onClick(View v) {
// Меняем текст в TextView (tvOut)
tvOut.setText("Нажата кнопка ОК");

}
};
// присвоим обработчик кнопке OK (btnOk)
btnOk.setOnClickListener(oclBtnOk);

if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment())
.commit();
}
}


@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;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}

/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {

public PlaceholderFragment() {
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
return rootView;
}
}

}[/syntax]
После запуска эмулятор либо зависает, либо выдает ошибку.
scr1.jpg
scr1.jpg (47.03 КБ) 16326 просмотров
Заранее спасибо.

Vikky_Leto
Сообщения: 4
Зарегистрирован: 12 апр 2014, 22:05

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

Сообщение Vikky_Leto » 13 апр 2014, 23:25

Присоединяюсь к сообщению выше. Эмулятор выдает ошибку.
Кто-то знает, в чем причина?
Вложения
error.png
error.png (131.15 КБ) 16318 просмотров

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

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

Сообщение Foenix » 14 апр 2014, 10:57

Vikky_Leto, ух ты, надо же..!
R.id.team

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

Sardel
Сообщения: 5
Зарегистрирован: 08 апр 2014, 23:22

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

Сообщение Sardel » 16 апр 2014, 20:33

Подскажите пожалуйста.
как сделать ссылку из кнопки, что бы при клике по этой кнопке осуществлялся переход в браузер!?

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

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

Сообщение Foenix » 16 апр 2014, 21:05

ключевое слово Intent
R.id.team

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

Аватара пользователя
VladGrey
Сообщения: 4
Зарегистрирован: 09 апр 2014, 11:42

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

Сообщение VladGrey » 17 апр 2014, 12:34

Спасибо, Foenix.
Хотя обидно читать: "А вообще уже просто заколебали вновь пришедшие, которым пишешь ОДНО И ТО ЖЕ. Изучайте лог! это не сложно!".
Новичок решивший изучить Android с помощью уроков на startandroid, не то что в логах, в коде еще слабо ориентируются.
На месте разработчиков курса я бы продолжил тему начатую в https://www.youtube.com/watch?v=LFtjp3YQRrM
Как взаимодействуют fragment_main и activity_main, и как распределяются в них механизмы управления. На примере этого же урока.
И, я думаю, половина подобных сообщений даже не возникало бы. Лично для меня 15-20 минутный урок растянулся на 2 недели и я пока так и не прошел его. некоторое понимание мне дало http://developer.android.com/guide/comp ... ments.html
Пока с проблемами все борются путем удаления файла fragment_main.xml и части кода в MainActivity.java посвященного этому файлу.http://developer.alexanderklimov.ru/and ... droid2.php
или
http://stackoverflow.com/questions/2233 ... t-main-xml.

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

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

Сообщение Foenix » 17 апр 2014, 12:40

Я понимаю что обидно, но это справедливые слова, хоть и эмоциональные (слабому полу я думаю вы это простите).
мы уже просто кучу времение потратили на таких - и вебинар есть, полностью объясняющий как и где искать лог (ищите в нашем разделе на форуме) и где искать ошибки, и я уже 100500 раз писала одно и то же. Одна недовольная фраза - и все, уже все дуют губы, хотя вы как раз пол сильный, так что ничего, выдержите :)
Не нужно "бороться" с фрагментами, которые гугл выставил по-умолчанию. Нужно попытаться их понять. Они не из вредности их туда влепили. По ним уроки были, а раз вы не дошли до уроков - значит мало еще знаете.
Видео на ютюбе вообще делает отдельный человек, я его на форуме ни разу не встречала.
R.id.team

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

Аватара пользователя
VladGrey
Сообщения: 4
Зарегистрирован: 09 апр 2014, 11:42

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

Сообщение VladGrey » 17 апр 2014, 13:14

Спасибо, Foenix! Справедливо.
А она все же ЗАРАБОТАЛА!!!!

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

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

Сообщение Foenix » 17 апр 2014, 13:27

ну вот хорошие эмоции все таки возобладали :)
R.id.team

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

benni
Сообщения: 2
Зарегистрирован: 03 май 2014, 18:06

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

Сообщение benni » 03 май 2014, 18:15

Foenix писал(а):мы уже просто кучу времение потратили на таких - и вебинар есть, полностью объясняющий как и где искать лог (ищите в нашем разделе на форуме) и где искать ошибки, и я уже 100500 раз писала одно и то же.
Хорошее замечание - посмотреть в лог. Вот пример лога:

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

05-03 19:04:15.446: E/AndroidRuntime(21520): FATAL EXCEPTION: main
05-03 19:04:15.446: E/AndroidRuntime(21520): Process: com.example.viewbyid, PID: 21520
05-03 19:04:15.446: E/AndroidRuntime(21520): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.viewbyid/com.example.viewbyid.MainActivity}: java.lang.NullPointerException
05-03 19:04:15.446: E/AndroidRuntime(21520): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2305)
05-03 19:04:15.446: E/AndroidRuntime(21520): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2363)
05-03 19:04:15.446: E/AndroidRuntime(21520): 	at android.app.ActivityThread.access$900(ActivityThread.java:161)
05-03 19:04:15.446: E/AndroidRuntime(21520): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1265)
05-03 19:04:15.446: E/AndroidRuntime(21520): 	at android.os.Handler.dispatchMessage(Handler.java:102)
05-03 19:04:15.446: E/AndroidRuntime(21520): 	at android.os.Looper.loop(Looper.java:157)
05-03 19:04:15.446: E/AndroidRuntime(21520): 	at android.app.ActivityThread.main(ActivityThread.java:5356)
05-03 19:04:15.446: E/AndroidRuntime(21520): 	at java.lang.reflect.Method.invokeNative(Native Method)
05-03 19:04:15.446: E/AndroidRuntime(21520): 	at java.lang.reflect.Method.invoke(Method.java:515)
05-03 19:04:15.446: E/AndroidRuntime(21520): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
05-03 19:04:15.446: E/AndroidRuntime(21520): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
05-03 19:04:15.446: E/AndroidRuntime(21520): 	at dalvik.system.NativeStart.main(Native Method)
05-03 19:04:15.446: E/AndroidRuntime(21520): Caused by: java.lang.NullPointerException
05-03 19:04:15.446: E/AndroidRuntime(21520): 	at com.example.viewbyid.MainActivity.onCreate(MainActivity.java:22)
05-03 19:04:15.446: E/AndroidRuntime(21520): 	at android.app.Activity.performCreate(Activity.java:5426)
05-03 19:04:15.446: E/AndroidRuntime(21520): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
05-03 19:04:15.446: E/AndroidRuntime(21520): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2269)
Внимание вопрос - почему не запускается программа?
Подсказка - см пост VladGrey.
Это к тому, что глядя на лог - не всегда можно понять причину ошибки.

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

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

Сообщение Foenix » 03 май 2014, 18:23

ссылка в моей подписи
R.id.team

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

benni
Сообщения: 2
Зарегистрирован: 03 май 2014, 18:06

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

Сообщение benni » 03 май 2014, 18:32

Foenix писал(а):ссылка в моей подписи
Foenix писал(а):у тебя NPE. Ищи слова Caused by там будет ошибка, дальше ищи адрес в своей программе - щелкай два раза, перенесешься к ошибке и смотри что там не так
А вообще уже просто заколебали вновь пришедшие, которым пишешь ОДНО И ТО ЖЕ. Изучайте лог! это не сложно!
Серьзно?
Лог:

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

05-03 19:04:15.446: E/AndroidRuntime(21520): Caused by: java.lang.NullPointerException
05-03 19:04:15.446: E/AndroidRuntime(21520): 	at com.example.viewbyid.MainActivity.onCreate(MainActivity.java:22)
Ок, ищем 22 строку:

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

21. TextView myTextView = (TextView) findViewById(R.id.myText);
22. myTextView.setText("New text in TextView");
Строка 22 не работает. Причина NullPointerException. Иии? Каким образом мне 22 строка поможет понять, что проблема в использовании fragment_main?

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

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

Сообщение Foenix » 03 май 2014, 19:16

конечно все элементарно - не инициализировался myTextView!
R.id.team

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

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

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

Сообщение Mikhail_dev » 03 май 2014, 23:21

Ага, вот где она. Где тестирование
Изображение
?!!
А на вопрос "почему" ответить никак?
Другими словами тот TextView myTextView = (TextView) findViewById(R.id.myText);
может обращаться к примеру не к тому XML файлу. Т.е. тот XML, который у вас составляет экран (в активности указывается в setContentView или во фрагменте, в методе onCreateView), он не содержит R.id.myText , поэтому вы получаете данную ошибку. Скорее всего, что данный id находится в другом XML файле, поэтому вам и как бы ошибку не подчеркивает что его нет, и в то же время падает.

Roma2395
Сообщения: 1
Зарегистрирован: 04 май 2014, 16:02

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

Сообщение Roma2395 » 04 май 2014, 16:08

Вопрос по этому уроку, повторяю все в точности, но не запускается.
package com.example.buttonnn;

import android.app.Activity;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
TextView textView1;
Button button1;
Button button2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

if (savedInstanceState == null) {
getFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment())
.commit();

}



textView1 = (TextView) findViewById(R.id.textView1);
button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);

OnClickListener oclbutton1 = new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
textView1.setText("Нажата кнопка ОК");
}
};
button1.setOnClickListener(oclbutton1);
}


@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;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}

/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {

public PlaceholderFragment() {
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
return rootView;
}
}

}

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

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

Сообщение Mikhail_dev » 04 май 2014, 16:34

Ответ вы не знали, иначе бы не писали "не инициализировалось", "догадок список приписать?".
Я могу заручиться что она ответ знала, и ответ тут "не инициализировалось". Хотите поспорить? Ваши аргументы!
Это форум, и вы его засираете бесполезными постами.
Засирают его бесполезными постами те, кто повторяют эти самые посты. Если повторение идет от тех, кто не гуглил, либо просто не может вдуматься в прошлый ответ, то этими сами, как вы выразились засиральщиками, являются как раз таки новички, а не те кто отвечает в 100500 раз на одно и тоже.

Roma2395, это не форум Нострадамусов, никто не сможет понять что у вас там за ошибка. Дабы понять что за ошибка, посмотрите вебинар viewtopic.php?f=60&t=3198
И еще, оформите Ваш код в теги, ибо читать невозможно.

Ответить