Урок 9. Обработчики событий на примере Button.
Re: Урок 9. Обработчики событий на примере Button.
Если вы имеете ввиду не экранные кнопки, а клавиатуру на телефоне, то в обработчик OnKeyListener передается код нажатой кнопки, а также KeyEvent из которого можно получить всю инфу о событии
onKey(View v, int keyCode, KeyEvent event)
onKey(View v, int keyCode, KeyEvent event)
Re: Урок 9. Обработчики событий на примере Button.
Спасибо за столь быстрый ответ, не ожидал.
имел в виду экранные.
и как уже увидел позже, ответ на мой вопрос - это следующий урок. Так что теперь не буду так спешить задавать вопросы
имел в виду экранные.
и как уже увидел позже, ответ на мой вопрос - это следующий урок. Так что теперь не буду так спешить задавать вопросы
Re: Урок 9. Обработчики событий на примере Button.
Почему, когда я добавляю событие кнопки android:onClick="click", то в эмуляторе вместо виджета появляется окно с надписью "Problem loading widget" ???
Последний раз редактировалось Алексей 28 сен 2012, 21:53, всего редактировалось 1 раз.
Re: Урок 9. Обработчики событий на примере Button.
Вот если б делали скрины проблем и выкладывали бы, было б проще ответить...рекомендую для этого прогу GreenShot...очень-очень удобная вещь
Re: Урок 9. Обработчики событий на примере Button.
Подскажите как реализовать такое: пока нажата кнопка, посылаются какие-то данные (т.е. грубо говоря вызывается функция каждые 500 мс), как только отпустили кнопку, то передача данных прекращается.
Re: Урок 9. Обработчики событий на примере Button.
Нужно прицепить к кнопке OnTouchListener и в нем отлавливать события в методе onTouch (View v, MotionEvent event) из event получаем action ( event.getAction()) и по его значению определяем что нужно делать.
Вызов функции через определенный промежуток времени, к примеру, можно оформить в отдельном потоке, а при отпускании кнопки убивать этот поток.
Вызов функции через определенный промежуток времени, к примеру, можно оформить в отдельном потоке, а при отпускании кнопки убивать этот поток.
Код: Выделить всё
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
//запускаем задачу вызова функции в отдельном потоке
break;
case MotionEvent.ACTION_UP:
//убиваем поток созданный в ACTION_DOWN
break;
default:
break;
}
return false;
}
Re: Урок 9. Обработчики событий на примере Button.
Почему то у меня вообще какой-то другой код получился,не такой допустим как у вас:
public class MainActivity extends Activity {
TextView tvOut;
Button btnOk;
Button btnCancel;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// найдем View-элементы
tvOut = (TextView) findViewById(R.id.tvOut);
btnOk = (Button) findViewById(R.id.btnOk);
btnCancel = (Button) findViewById(R.id.btnCancel);
}
}
А вообще вот какой:
package ru.startandroid.develop.onclickbuttons;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@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;
}
}
Что сделать то нужно?
public class MainActivity extends Activity {
TextView tvOut;
Button btnOk;
Button btnCancel;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// найдем View-элементы
tvOut = (TextView) findViewById(R.id.tvOut);
btnOk = (Button) findViewById(R.id.btnOk);
btnCancel = (Button) findViewById(R.id.btnCancel);
}
}
А вообще вот какой:
package ru.startandroid.develop.onclickbuttons;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@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;
}
}
Что сделать то нужно?
Re: Урок 9. Обработчики событий на примере Button.
Прошу прощения за глупый вопрос. На эмуляторе в уроках цвет фона стал черным, но в коде задания этого параметра я не нашел. Это задается где-то в глобальных настройках проекта или как?
Re: Урок 9. Обработчики событий на примере Button.
На это не обращайте внимания, это темы разные. Начальные уроки я переделывал под новой версией AVD и там в манифесте прописывается тема (android:theme), а большинство остальных уроков остались старыми.SergTop писал(а):Прошу прощения за глупый вопрос. На эмуляторе в уроках цвет фона стал черным, но в коде задания этого параметра я не нашел. Это задается где-то в глобальных настройках проекта или как?
Re: Урок 9. Обработчики событий на примере Button.
Прошу прощения, но первые уроки, а особенно этот, жутко тугие! Реально не понятно что куда вставлять. Автор приводит листинг кода потом пишет добавляем это и то, а что и куда просто не понятно... Оттого народ и пишет что тупит жутко по несколько дней. У меня например вообще нет времени заморачиваться на непонятные уроки и я просто не съедаю их и перехожу к следующим еще более не понятным(материал то прошлый не усвоен). Очень жаль, хорошее начинание, но видимо совсем новичку без знания Jawa тут делать нечего..
Re: Урок 9. Обработчики событий на примере Button.
а как вы хотели без времени усвоить что тоjeizone писал(а):Прошу прощения, но первые уроки, а особенно этот, жутко тугие! Реально не понятно что куда вставлять. Автор приводит листинг кода потом пишет добавляем это и то, а что и куда просто не понятно... Оттого народ и пишет что тупит жутко по несколько дней. У меня например вообще нет времени заморачиваться на непонятные уроки и я просто не съедаю их и перехожу к следующим еще более не понятным(материал то прошлый не усвоен). Очень жаль, хорошее начинание, но видимо совсем новичку без знания Jawa тут делать нечего..
и без
конечно вы ничего не поймётеJawa
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 9. Обработчики событий на примере Button.
"Google Android - это несложно" многие наверняка повелись на этот по видимому не совсем точный лозунг))
Re: Урок 9. Обработчики событий на примере Button.
Вам деньги вернуть? ))jeizone писал(а):У меня например вообще нет времени заморачиваться на непонятные уроки и я просто не съедаю их и перехожу к следующим еще более не понятным
Про то, что нужны знания Java - написано в первом уроке.
Re: Урок 9. Обработчики событий на примере Button.
я тоже не знаю такого языка, как ни странно.jeizone писал(а):Jawa
П.С. ты знаешь что программирование - это не гвоздь забить, типа раз показали и умеешь уже, знаешь?????
Хочешь понимать о чем речь, учи основы ООП, Java. Ну а со знаниями Jawa ты далеко не пойдешь.
CEO of a company R.id.team
Re: Урок 9. Обработчики событий на примере Button.
Доброго времени суток. Как сделать кнопку на карте чтоб она меняла вид ( карта - спутник ), кнопки на карте уже есть, интересует именно код, покаместь такой:
То есть две кнопки, на них пока onClickSp и onClickSt, понимаю, что это "как-то не так", хочу сделать одну кнопку, чтоб нажимая на неё менялся вид с mapView.setSatellite(true) на mapView.setSatellite(false).
Хотя если подойти с другой стороны, то при нажатии на кнопку проверить какой вид карты. В общем, прошу совета.
Код: Выделить всё
public void onClickSp (View v) {
mapView.setSatellite(true);
}
public void onClickSt (View v) {
mapView.setSatellite(false);
}
Хотя если подойти с другой стороны, то при нажатии на кнопку проверить какой вид карты. В общем, прошу совета.
Re: Урок 9. Обработчики событий на примере Button.
Digetix
TogleButton ?
у баттона есть состояния activated:
TogleButton ?
у баттона есть состояния activated:
Код: Выделить всё
if(((Button)v).isActivated()) {
mapView.setSatellite(true);
} else {
mapView.setSatellite(false);
}
((Button)v).setActivated(!((Button)v).isActivated());
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 9. Обработчики событий на примере Button.
Спасибо за ответ. Забыл отписаться, что сделал так:
А в .xml добавил
"@android:drawable/btn_default" убрал полоску
Код: Выделить всё
public void onToggleClicked(View view) {
toogleButton = (ToggleButton) findViewById(R.id.toggleButton1);
boolean on = ((ToggleButton) view).isChecked();
if (on) {
mapView.setSatellite(true);
} else {
mapView.setSatellite(false);
}
}
Код: Выделить всё
android:onClick="onToggleClicked"
android:background="@android:drawable/btn_default"
-
- Сообщения: 2
- Зарегистрирован: 13 фев 2013, 12:14
Re: Урок 9. Обработчики событий на примере Button.
[quote][/quote]Помогите, пожалуйста, начинающему найти ошибку в MainActivity.java.
Еклипс говорит ошибки в 29, 36, 44 и 45 строке.
Заранее спасибо.
Код: Выделить всё
package ru.startandroid.develop.onclickbuttons;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView tvOut;
Button btnOk;
Button btnCancel;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.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("Нажата кнопка ОК");
}
OnClickListener oclBtnCancel = new OnClickListener() {
@Override
public void onClick(View v) {
// Меняем текст в TextView (tvOut)
tvOut.setText("Нажата кнопка Cancel");
}
};
};
// присвоим обработчик кнопке OK (btnOk)
btnOk.setOnClickListener(oclBtnOk);
btnCancel.setOnClickListener(oclBtnCancel);
}
}
Заранее спасибо.
Re: Урок 9. Обработчики событий на примере Button.
Не нравицца мне это место.
У тебя второй обработчик влез внутрь первого. Так будет лучше
Код: Выделить всё
// создаем обработчик нажатия
OnClickListener oclBtnOk = new OnClickListener() {
@Override
public void onClick(View v) {
// Меняем текст в TextView (tvOut)
tvOut.setText("Нажата кнопка ОК");
}
OnClickListener oclBtnCancel = new OnClickListener() {
@Override
public void onClick(View v) {
// Меняем текст в TextView (tvOut)
tvOut.setText("Нажата кнопка Cancel");
}
};
};
Код: Выделить всё
// создаем обработчик нажатия
OnClickListener oclBtnOk = new OnClickListener() {
@Override
public void onClick(View v) {
// Меняем текст в TextView (tvOut)
tvOut.setText("Нажата кнопка ОК");
}
};
OnClickListener oclBtnCancel = new OnClickListener() {
@Override
public void onClick(View v) {
// Меняем текст в TextView (tvOut)
tvOut.setText("Нажата кнопка Cancel");
}
};
-
- Сообщения: 2
- Зарегистрирован: 13 фев 2013, 12:14
Re: Урок 9. Обработчики событий на примере Button.
Roger68
Спасибо, но не помогло ((
Спасибо, но не помогло ((