Форум: "Прочее";
Текущий архив: 2014.06.15;
Скачать: [xml.tar.bz2];
Внизпроконсультируйте по Java Найти похожие ветки
← →
stas © (2013-11-29 12:37) [0]Пытаюсь сделать простое приложение под андроид.
Нашел ссылку http://www.quizful.net/post/android-quick-start
сделал, приложение в принципе заработало, но я не понял почему так делаем...
Изначально есть класс MainActivity наследник Activity.
Автоматически прописан метод onCreate...
Это вроде понятно
package com.example;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
но потом чтобы добавить обработчик кнопки, мы в заголовок класса еще че-то дописываем, вот это я не понял
public class MainActivity extends Activity implements OnClickListener
и потом кнопке, как-то интересно присваиваем обработчикbutton.setOnClickListener(this);
т.е. сам этот класс. Тоже как-то не понятно...
И если будет несколько разных обработчиков как это все объявить?
public class MainActivity extends Activity implements OnClickListener {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button) findViewById(R.id.Button01);
button.setOnClickListener(this);
}
public void onClick(View arg0) {
new AlertDialog.Builder(this).setMessage(R.string.hello)
.setNeutralButton("Ok", null).show();
}
}
Спасибо заранее ).
← →
Юрий Зотов © (2013-11-29 14:33) [1]Все нижеследующее - ИМХО.
> чтобы добавить обработчик кнопки, мы в заголовок класса
> еще че-то дописываем, вот это я не понял
> public class MainActivity extends Activity implements OnClickListener
Здесь декларируется, что класс MainActivity унаследован от класса Activity и реализует интерфейс OnClickListener (то есть, содержит методы, объявленные в этом интерфейсе - в частности, содержит метод OnClick).
> кнопке, как-то интересно присваиваем обработчик
> button.setOnClickListener(this);
> т.е. сам этот класс. Тоже как-то не понятно...
Здесь объект, реализующий интерфейс OnClickListener (то есть, содержащий метод OnClick) назначается слушателем клика по кнопке. При клике по кнопке автоматически будет вызван метод OnClick данного объекта.
> если будет несколько разных обработчиков как это все объявить?
1. Можно создать несколько обработчиков (реализаторов интерфейса OnClickListener) и назначить каждому контролу свой обработчик.
2. Можно обойтись и одним обработчиком, назначив его нескольким контролам. По какому именно контролу произошел клик - это устанавливает параметр View, передаваемый в метод OnClick (см. getId). Поместив в метод OnClick оператор switch или if, мы можем одним и тем же обработчиком производить разные действия для разных контролов.
← →
icelex © (2013-11-29 14:34) [2]Ты уж извини за прямоту, но с такими знаниями джавы сначала почитай хоть про нее
ну а по теме, например так можно
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
close();
}
});
или так:
public void onClick(View arg0) {
switch (arg0.getId()){
case ...:
break;
}
}
← →
stas © (2013-11-29 15:38) [3]Юрий Зотов © (29.11.13 14:33) [1]
icelex © (29.11.13 14:34) [2]
Спасибо!
> Ты уж извини за прямоту, но с такими знаниями джавы сначала
> почитай хоть про нее
Конечно, у меня по ней знаний -0.
← →
Юрий Зотов © (2013-11-29 15:50) [4]> stas © (29.11.13 15:38) [3]
Брюс Эккель. Философия Java.
Bruce Eckel. Thinking in Java.
В сети полно, в том числе и на русском языке.
← →
stas © (2013-11-29 16:00) [5]Юрий Зотов © (29.11.13 15:50) [4]
Спасибо большое )!
← →
Пит (2013-11-29 16:39) [6]
> Брюс Эккель. Философия Java.
стоящая книжка? А то я купил, а руки все никак не дойдут.
И еще, дядя Юра, вы Java активно критиковали, мол фигня, дельфи лучше. Мнение поменялось по прошествии лет или все равно куча претензий, типа отсутствия базового метода деструктора?
← →
имя (2013-11-30 15:22) [7]Удалено модератором
← →
antonn © (2013-11-30 16:22) [8]
> но потом чтобы добавить обработчик кнопки, мы в заголовок
> класса еще че-то дописываем, вот это я не понял
> public class MainActivity extends Activity implements OnClickListener
>
не понял зачем ты это дописываешь. но в эклипсе кнопке (ее описанию в xml) можно указать метод в активити явно, без излишних имплементаций
← →
Юрий Зотов © (2013-12-01 01:10) [9]> Пит (29.11.13 16:39) [6]
1. Книжка стоящая. По крайней мере, то ее издание, которое я читал.
2. Мнение не поменялось. Хотя, конечно, это лишь мое личное мнение и не более того.
← →
Пит (2013-12-01 01:51) [10]А вот еще флудливая тема.. Вся это кроссплатформенность и абстрагирование это реально работает или хрень полная и один фиг нужно грамотное приложение затачивать под конкретную ОС? (если не учитывать WEB, именно толстый клиент)
← →
Юрий Зотов © (2013-12-01 02:31) [11]> Пит (01.12.13 01:51) [10]
Если используются какие-либо специализированные библиотеки (как в моем случае), то о кроссплатформенности речь, конечно, идти не может. В лучшем случае можно говорить о каких-то эмуляторах.
А если специализированные библиотеки не используются, то может быть вполне реально. Например, свой код я иногда отлаживаю под виндой, хотя пишется он в итоге для AS400. И пока дело не доходит до этих самых специализированных библиотек, все работает и тут, и там.
Несколько лет назад здесь была тема - человек спросил, как ему запустить джавское мобильное приложение под виндой. Ответ был такой: через эмулятор.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2014.06.15;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.002 c