Страница 4 из 21

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

Добавлено: 18 сен 2012, 22:59
AndreyI
Если вы имеете ввиду не экранные кнопки, а клавиатуру на телефоне, то в обработчик OnKeyListener передается код нажатой кнопки, а также KeyEvent из которого можно получить всю инфу о событии
onKey(View v, int keyCode, KeyEvent event)

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

Добавлено: 18 сен 2012, 23:02
Quver
Спасибо за столь быстрый ответ, не ожидал.
имел в виду экранные.
и как уже увидел позже, ответ на мой вопрос - это следующий урок. Так что теперь не буду так спешить задавать вопросы :roll:

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

Добавлено: 28 сен 2012, 14:41
Алексей
Почему, когда я добавляю событие кнопки android:onClick="click", то в эмуляторе вместо виджета появляется окно с надписью "Problem loading widget" ???Изображение

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

Добавлено: 28 сен 2012, 15:16
powercat
Вот если б делали скрины проблем и выкладывали бы, было б проще ответить...рекомендую для этого прогу GreenShot...очень-очень удобная вещь

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

Добавлено: 12 ноя 2012, 12:23
tolik777
Подскажите как реализовать такое: пока нажата кнопка, посылаются какие-то данные (т.е. грубо говоря вызывается функция каждые 500 мс), как только отпустили кнопку, то передача данных прекращается.

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

Добавлено: 12 ноя 2012, 12:53
AndreyI
Нужно прицепить к кнопке 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.

Добавлено: 10 дек 2012, 15:55
xxxdenxxx
Почему то у меня вообще какой-то другой код получился,не такой допустим как у вас:

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.

Добавлено: 13 дек 2012, 02:07
SergTop
Прошу прощения за глупый вопрос. На эмуляторе в уроках цвет фона стал черным, но в коде задания этого параметра я не нашел. Это задается где-то в глобальных настройках проекта или как?

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

Добавлено: 18 дек 2012, 09:29
damager82
SergTop писал(а):Прошу прощения за глупый вопрос. На эмуляторе в уроках цвет фона стал черным, но в коде задания этого параметра я не нашел. Это задается где-то в глобальных настройках проекта или как?
На это не обращайте внимания, это темы разные. Начальные уроки я переделывал под новой версией AVD и там в манифесте прописывается тема (android:theme), а большинство остальных уроков остались старыми.

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

Добавлено: 20 янв 2013, 23:03
jeizone
Прошу прощения, но первые уроки, а особенно этот, жутко тугие! Реально не понятно что куда вставлять. Автор приводит листинг кода потом пишет добавляем это и то, а что и куда просто не понятно... Оттого народ и пишет что тупит жутко по несколько дней. У меня например вообще нет времени заморачиваться на непонятные уроки и я просто не съедаю их и перехожу к следующим еще более не понятным(материал то прошлый не усвоен). Очень жаль, хорошее начинание, но видимо совсем новичку без знания Jawa тут делать нечего..

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

Добавлено: 20 янв 2013, 23:12
rezak90
jeizone писал(а):Прошу прощения, но первые уроки, а особенно этот, жутко тугие! Реально не понятно что куда вставлять. Автор приводит листинг кода потом пишет добавляем это и то, а что и куда просто не понятно... Оттого народ и пишет что тупит жутко по несколько дней. У меня например вообще нет времени заморачиваться на непонятные уроки и я просто не съедаю их и перехожу к следующим еще более не понятным(материал то прошлый не усвоен). Очень жаль, хорошее начинание, но видимо совсем новичку без знания Jawa тут делать нечего..
а как вы хотели без времени усвоить что то :?: :!: :?:
и без
Jawa
8-) конечно вы ничего не поймёте

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

Добавлено: 20 янв 2013, 23:16
jeizone
"Google Android - это несложно" многие наверняка повелись на этот по видимому не совсем точный лозунг))

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

Добавлено: 24 янв 2013, 12:55
damager82
jeizone писал(а):У меня например вообще нет времени заморачиваться на непонятные уроки и я просто не съедаю их и перехожу к следующим еще более не понятным
Вам деньги вернуть? ))
Про то, что нужны знания Java - написано в первом уроке.

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

Добавлено: 24 янв 2013, 15:03
Finch
jeizone писал(а):Jawa
я тоже не знаю такого языка, как ни странно.
П.С. ты знаешь что программирование - это не гвоздь забить, типа раз показали и умеешь уже, знаешь?????
Хочешь понимать о чем речь, учи основы ООП, Java. Ну а со знаниями Jawa ты далеко не пойдешь.

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

Добавлено: 25 янв 2013, 16:02
Digetix
Доброго времени суток. Как сделать кнопку на карте чтоб она меняла вид ( карта - спутник ), кнопки на карте уже есть, интересует именно код, покаместь такой:

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

public void onClickSp (View v)   {					 
	   
            mapView.setSatellite(true);	    		
	    	
            }	
public void onClickSt (View v)     {
					 
 	    mapView.setSatellite(false);
 		
 	}
То есть две кнопки, на них пока onClickSp и onClickSt, понимаю, что это "как-то не так", хочу сделать одну кнопку, чтоб нажимая на неё менялся вид с mapView.setSatellite(true) на mapView.setSatellite(false).

Хотя если подойти с другой стороны, то при нажатии на кнопку проверить какой вид карты. В общем, прошу совета.

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

Добавлено: 25 янв 2013, 19:02
rezak90
Digetix
TogleButton ?
у баттона есть состояния activated:

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

if(((Button)v).isActivated()) {
mapView.setSatellite(true);
} else {
mapView.setSatellite(false);
}
((Button)v).setActivated(!((Button)v).isActivated());

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

Добавлено: 26 янв 2013, 00:22
Digetix
Спасибо за ответ. Забыл отписаться, что сделал так:

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

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);
            }
        }
А в .xml добавил

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

android:onClick="onToggleClicked"
android:background="@android:drawable/btn_default"
"@android:drawable/btn_default" убрал полоску

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

Добавлено: 13 фев 2013, 12:29
skostychev
[quote][/quote]Помогите, пожалуйста, начинающему найти ошибку в MainActivity.java.

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

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);
	  }
	}
Еклипс говорит ошибки в 29, 36, 44 и 45 строке.

Заранее спасибо.

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

Добавлено: 13 фев 2013, 14:50
Roger68
Не нравицца мне это место.

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

	    // создаем обработчик нажатия
	    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");
	          }
	    };

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

Добавлено: 13 фев 2013, 16:39
skostychev
Roger68

Спасибо, но не помогло ((