Урок 17. Создание View-компонент в рабочем приложении
Re: Урок 17. Создание View-компонент в рабочем приложении
кнопок на самом деле больше, они генерируются по определенным критериям из MySQL, и заполняются данными оттуда же. А при нажатии на сгенерированную кнопку я должен получать более подробную инфу по записи из базы.
На форуме конкретно по кнопкам не нашел, выше здесь же люди писали подобные вопросы - на них никто не отвечал.
Можете ли вы дать ссылку где это обсуждалось? Спасибо за быстрый ответ!
На форуме конкретно по кнопкам не нашел, выше здесь же люди писали подобные вопросы - на них никто не отвечал.
Можете ли вы дать ссылку где это обсуждалось? Спасибо за быстрый ответ!
Re: Урок 17. Создание View-компонент в рабочем приложении
да потому что уже много раз отвечали
поищи по слову "перебор" или "перебор компонентов" не помню точно.
поищи по слову "перебор" или "перебор компонентов" не помню точно.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 17. Создание View-компонент в рабочем приложении
Foenix, спасибо!
По результатам поиска ничего конкретного не было. Но среди них были ключевые слова, с помощью которых я уже потом понял структуру и разобрался.
По результатам поиска ничего конкретного не было. Но среди них были ключевые слова, с помощью которых я уже потом понял структуру и разобрался.
-
- Сообщения: 42
- Зарегистрирован: 25 янв 2015, 18:57
Re: Урок 17. Создание View-компонент в рабочем приложении
1)При попытке присвоить ID btnNew.setId(); перебрал всевозможные варианты ID-"212" "R.id.dff"-все подчеркивает красным, почему?
2) А чем отличаются методы llMain.removeAllViews(); и llMain.removeAllViewsInLayout();?
Спасибо огромное за ваши уроки!!
2) А чем отличаются методы llMain.removeAllViews(); и llMain.removeAllViewsInLayout();?
Спасибо огромное за ваши уроки!!
-
- Сообщения: 1
- Зарегистрирован: 08 фев 2015, 14:02
Re: Урок 17. Создание View-компонент в рабочем приложении
Я заметил, что радиокнопки не объявлялись и не инициализировались. Почему это не нужно? Ведь кнопки то объявили. В чем разница?
-
- Сообщения: 2
- Зарегистрирован: 12 фев 2015, 22:59
Re: Урок 17. Создание View-компонент в рабочем приложении
Ребята, подскажите пожалуйста
package com.example.application.myapplication;
import android.app.Activity;
import android.content.DialogInterface;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View; ю ю ю юю
public class MainActivity extends Activity implements OnClickListener {
LinearLayout llMain;
и т.д.
Проблема следующая - подчеркивает OnClickListener и хочет переделать в андроид диалогчетатам.
в чем прикол. переписал урок. подчеркнуты "this" и вначале OnClickListener .
честно не знаю что делать. пишу в андроид студио.
package com.example.application.myapplication;
import android.app.Activity;
import android.content.DialogInterface;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View; ю ю ю юю
public class MainActivity extends Activity implements OnClickListener {
LinearLayout llMain;
и т.д.
Проблема следующая - подчеркивает OnClickListener и хочет переделать в андроид диалогчетатам.
в чем прикол. переписал урок. подчеркнуты "this" и вначале OnClickListener .
честно не знаю что делать. пишу в андроид студио.
-
- Сообщения: 2
- Зарегистрирован: 12 фев 2015, 22:59
Re: Урок 17. Создание View-компонент в рабочем приложении
Добавил в импорт
import android.view.View.OnClickListener;
и всё заработало. пздц
import android.view.View.OnClickListener;
и всё заработало. пздц
- Хомка Хомячок
- Сообщения: 16
- Зарегистрирован: 03 фев 2015, 10:39
- Контактная информация:
Re: Урок 17. Создание View-компонент в рабочем приложении
Можно переопределить аппаратную клавишу меню.
Вот код:
Информацию я нарыл здесь http://www.cyberforum.ru/android-dev/thread843920.html
Разумеется внутри, можно накодить своё альтернативно меню, так сказать. Применяя знания, полученные в этом уроке.
Но, я не пойму как, при втором нажатие аппаратной клавиши меню, убрать накоденное альтернативное меню?
Вот код:
Код: Выделить всё
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
event.startTracking();
//TODO: Implement this method
//Например вывожу короткую инфу, о том что клавиша переопределена
Toast.makeText(this, "ПЕРЕОПРЕДЕЛЕНО", Toast.LENGTH_SHORT).show();
return true;
}
return super.onKeyDown(keyCode, event);
}
Информацию я нарыл здесь http://www.cyberforum.ru/android-dev/thread843920.html
Разумеется внутри, можно накодить своё альтернативно меню, так сказать. Применяя знания, полученные в этом уроке.
Но, я не пойму как, при втором нажатие аппаратной клавиши меню, убрать накоденное альтернативное меню?
Полосатенький Бочок
- Хомка Хомячок
- Сообщения: 16
- Зарегистрирован: 03 фев 2015, 10:39
- Контактная информация:
Re: Урок 17. Создание View-компонент в рабочем приложении
Как найти по id эти динамически созданные кнопки?
Присвоил через setId. Найти стандартным способ не выходит, для того чтобы с ними потом работать.
Они в R.Java не прописываются?
Присвоил через setId. Найти стандартным способ не выходит, для того чтобы с ними потом работать.
Они в R.Java не прописываются?
Полосатенький Бочок
Re: Урок 17. Создание View-компонент в рабочем приложении
Кнопка1 = ....динамически создаем кнопку.Хомка Хомячок писал(а):Как найти по id эти динамически созданные кнопки?
Присвоил через setId. Найти стандартным способ не выходит, для того чтобы с ними потом работать.
Они в R.Java не прописываются?
Сохраняй ссылку на Кнопка1, либо объявляй ее на уровне класса.
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
- Хомка Хомячок
- Сообщения: 16
- Зарегистрирован: 03 фев 2015, 10:39
- Контактная информация:
Re: Урок 17. Создание View-компонент в рабочем приложении
На 4PDA подсказали, но я понятия не имею как писать это.Хомка Хомячок писал(а): я не пойму как, при втором нажатие аппаратной клавиши меню, убрать накоденное альтернативное меню?
План такой.
1.X=0
2.Если нажата кнопка меню, увеличивай значение X на единицу, затем дели полученное пополам, и присваивай это значение Y.
3.Бери дробную часть числа Y, если она равна нулю, то удаляй все View элементы.
4.Если не равна нулю, то ничего не делай.
Полосатенький Бочок
Re: Урок 17. Создание View-компонент в рабочем приложении
Пару моментов:Хомка Хомячок писал(а):На 4PDA подсказали, но я понятия не имею как писать это.Хомка Хомячок писал(а): я не пойму как, при втором нажатие аппаратной клавиши меню, убрать накоденное альтернативное меню?
План такой.
1.X=0
2.Если нажата кнопка меню, увеличивай значение X на единицу, затем дели полученное пополам, и присваивай это значение Y.
3.Бери дробную часть числа Y, если она равна нулю, то удаляй все View элементы.
4.Если не равна нулю, то ничего не делай.
1) Когда используется экшен бар? - например, когда есть список действий, для которых не хочется отводить отдельное место на экране, т.е. спрятать их (в выпадающей менюшке или на самом экшен баре).
2) Когда используется контекстное меню? - никогда .
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
- Хомка Хомячок
- Сообщения: 16
- Зарегистрирован: 03 фев 2015, 10:39
- Контактная информация:
Re: Урок 17. Создание View-компонент в рабочем приложении
Я просто хочу сделать нормальное, по внешнему виду меню. Мной движет только то, что мне неприятен вид стандартного. Оно ущербное. Я очень удивляюсь, что большинство разработчиков, не делают меню собственного оформления. И оставляют ущербное андроидовское. Я хочу сделать свое, да с анимацией. И потом приткнуть его в свой недобраузер.doter.ua писал(а):
Но для начала, мне необходимо сделать альтернативное меню, состоящее хотя бы из одного элемента. Так как, если удастся сделать одноэлементное меню, то не трудно добавить больше.
Мне хочется видеть приятное на глаз меню. Только и всего.
Полосатенький Бочок
- Хомка Хомячок
- Сообщения: 16
- Зарегистрирован: 03 фев 2015, 10:39
- Контактная информация:
Re: Урок 17. Создание View-компонент в рабочем приложении
Oй, я кажется наконец разобрался как это написать со счетчиком:
У меня всё вОркает
Код: Выделить всё
//не забудьте, там в начале обьявить:
//int x=0;
//int y;
//int z;
//ниже по коду, t1 - это у меня элемент TextView.
//Для версия 1.х
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
//Проверяем какая кнопка была нажата
if (keyCode == KeyEvent.KEYCODE_MENU) {
/*выполняем нужные действия*/
y=x++;//при каждом нажатии на аппаратную кнопку увеличиваем значение x на 1, и присваиваем это значение y
z=y%2; //после чего, берем остаток от деления y на два, и присваиваем его z
//теперь наше z, будет иметь значение либо 0 либо 1.
//и можно вводить иф
if(z==1){ //если z равно единицы, то:
t1.setText("значение z = "+z);//вместо этого можно программно создавать элементы альтернативного меню
}
else
t1.setText("значение z = "+z);//а затем их разрушать
//показываем, что обработали событие нажатия на клавишу, возвращая true
return true;
}
return super.onKeyDown(keyCode, event);
}
Полосатенький Бочок
- Хомка Хомячок
- Сообщения: 16
- Зарегистрирован: 03 фев 2015, 10:39
- Контактная информация:
Re: Урок 17. Создание View-компонент в рабочем приложении
Да что за ерунда. Метод removeAllViews(); после удаления элементов в одном из лайаутов, делает все остальное неактивным. В других лайаутах неактивно все.
Полосатенький Бочок
Re: Урок 17. Создание View-компонент в рабочем приложении
Увидела в уроке, что можно с помощью getChildCount() посчитать сколько кнопок создано. Я создала специальную кнопку Count, по нажатии на которую TextView должен измениться на количество созданных кнопок, но по нажатии приложение выключается
Подскажите, где моя ошибка?
Подскажите, где моя ошибка?
Код: Выделить всё
public class MainActivity extends Activity implements View.OnClickListener {
LinearLayout llMain;
RadioGroup rgGravity;
EditText etName;
Button btnCreate;
Button btnClear;
Button btnCount;
TextView tvCount;
int wrapContent = LinearLayout.LayoutParams.WRAP_CONTENT;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
llMain = (LinearLayout) findViewById(R.id.llMain);
rgGravity = (RadioGroup) findViewById(R.id.rgGravity);
etName = (EditText) findViewById(R.id.etName);
tvCount = (TextView) findViewById(R.id.tvCount);
btnCreate = (Button) findViewById(R.id.btnCreate);
btnCreate.setOnClickListener(this);
btnClear = (Button) findViewById(R.id.btnClear);
btnClear.setOnClickListener(this);
btnCount = (Button) findViewById(R.id.btnCount);
btnCount.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnCreate:
// Создание LayoutParams c шириной и высотой по содержимому
LinearLayout.LayoutParams lParams = new LinearLayout.LayoutParams(
wrapContent, wrapContent);
// переменная для хранения значения выравнивания
// по умолчанию пусть будет LEFT
int btnGravity = Gravity.LEFT;
// определяем, какой RadioButton "чекнут" и
// соответственно заполняем btnGravity
switch (rgGravity.getCheckedRadioButtonId()) {
case R.id.rbLeft:
btnGravity = Gravity.LEFT;
break;
case R.id.rbCenter:
btnGravity = Gravity.CENTER_HORIZONTAL;
break;
case R.id.rbRight:
btnGravity = Gravity.RIGHT;
break;
}
// переносим полученное значение выравнивания в LayoutParams
lParams.gravity = btnGravity;
// создаем Button, пишем текст и добавляем в LinearLayout
Button btnNew = new Button(this);
btnNew.setText(etName.getText().toString());
llMain.addView(btnNew, lParams);
break;
case R.id.btnCount:
int c1;
c1 = llMain.getChildCount();
tvCount.setText(c1);
break;
case R.id.btnClear:
llMain.removeAllViews();
Toast.makeText(this, "Удалено", Toast.LENGTH_SHORT).show();
break;
}
}
Re: Урок 17. Создание View-компонент в рабочем приложении
Нужно читать документацию и понимать, что принимает на вход метод. В данном случае вы посылаете в него int, только он хочет int в виде id ресурса (например R.string.my_string), а не какое-то непонятное число c1.
Как исправить:
а) tvCount.setText(c1 + ""); //колхозный метод
б) tvCount.setText(String.valueOf(c1)); //более корректный метод
Как исправить:
а) tvCount.setText(c1 + ""); //колхозный метод
б) tvCount.setText(String.valueOf(c1)); //более корректный метод
-
- Сообщения: 7
- Зарегистрирован: 15 ноя 2014, 03:15
Re: Урок 17. Создание View-компонент в рабочем приложении
Здравствуйте! Проект делал в Android Studio.
Все работает замечательно, но только не стирает. Не работает метод removeAllViews. Натолкните на ошибку пожалуйста.
Вот код MainActivity.java
Вот код activity_main.xml
Все работает замечательно, но только не стирает. Не работает метод removeAllViews. Натолкните на ошибку пожалуйста.
Вот код MainActivity.java
Код: Выделить всё
public class MainActivity extends Activity implements OnClickListener {
LinearLayout llMain;
RadioGroup rgGravity;
EditText etName;
Button btnCreate;
Button btnClear;
int wrapContent = LinearLayout.LayoutParams.WRAP_CONTENT;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
llMain = (LinearLayout) findViewById(R.id.llMain);
rgGravity = (RadioGroup) findViewById(R.id.rgGravity);
etName = (EditText) findViewById(R.id.etName);
btnCreate = (Button) findViewById(R.id.btnCreate);
btnCreate.setOnClickListener(this);
btnClear = (Button) findViewById(R.id.bntClear);
btnClear.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnCreate:
// Создание LayoutParams с шириной и высотой по содержимому
LinearLayout.LayoutParams lParams = new LinearLayout.LayoutParams(
wrapContent, wrapContent
);
// переменная для хранения значения выравнивания
// по умолчанию пусть будет Left
int btnGravity = Gravity.LEFT;
// определяем какой RadioButton чекнут и
// соответственно заполняем btnGravity
switch (rgGravity.getCheckedRadioButtonId()) {
case R.id.rbLeft:
btnGravity = Gravity.LEFT;
break;
case R.id.rbCenter:
btnGravity = Gravity.CENTER_HORIZONTAL;
break;
case R.id.rbRight:
btnGravity = Gravity.RIGHT;
break;
}
// переносим полученное значение выравнивания в LayoutParams
lParams.gravity = btnGravity;
// создаем Button, пишем текст и добавляем в LinearLayout
Button btnNew = new Button(this);
btnNew.setText(etName.getText().toString());
llMain.addView(btnNew, lParams);
break;
case R.id.btnClear:
llMain.removeAllViews();
Toast.makeText(this, "Удалено", Toast.LENGTH_SHORT).show();
break;
}
}
}
Код: Выделить всё
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<RadioGroup
android:id="@+id/rgGravity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/rbLeft"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="Left">
</RadioButton>
<RadioButton
android:id="@+id/rbCenter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Center">
</RadioButton>
<RadioButton
android:id="@+id/rbRight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Right">
</RadioButton>
</RadioGroup>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText
android:id="@+id/etName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:fadeScrollbars="true">
</EditText>
<Button
android:id="@+id/btnCreate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Create">
</Button>
<Button
android:id="@+id/bntClear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Clear">
</Button>
</LinearLayout>
<LinearLayout
android:id="@+id/llMain"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
</LinearLayout>
Re: Урок 17. Создание View-компонент в рабочем приложении
Добрый вечер!
Наверное, я не по теме, но ближе темы не нашла.
Вопрос глупый, но зависла. У меня в EditText не вводятся русские буквы с клавиатуры. Меняю раскладку и все нормально начинает писать (на английском). А на русском ни в какую...
В activity_main.xml прописано:
<?xml version="1.0" encoding="utf-8"?>
Использую стандартный эмулятор, реальное устройство пока недоступно для проверки . Сможете подсказать в чем может быть проблема?
Заранее спасибо.
Наверное, я не по теме, но ближе темы не нашла.
Вопрос глупый, но зависла. У меня в EditText не вводятся русские буквы с клавиатуры. Меняю раскладку и все нормально начинает писать (на английском). А на русском ни в какую...
В activity_main.xml прописано:
<?xml version="1.0" encoding="utf-8"?>
Использую стандартный эмулятор, реальное устройство пока недоступно для проверки . Сможете подсказать в чем может быть проблема?
Заранее спасибо.
Re: Урок 17. Создание View-компонент в рабочем приложении
я уже не помню что я делала
попробуй загуглить
http://stackoverflow.com/questions/9208 ... -simulator
http://stackoverflow.com/questions/1894 ... d-emulator
там говорят, что нужно установить доп. клавиатуру как приложение.
Установка - перетаскивание файла apk на эмулятор.
попробуй загуглить
http://stackoverflow.com/questions/9208 ... -simulator
http://stackoverflow.com/questions/1894 ... d-emulator
там говорят, что нужно установить доп. клавиатуру как приложение.
Установка - перетаскивание файла apk на эмулятор.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198