Урок 53. SimpleCursorTreeAdapter, пример использования
Re: Урок 53. SimpleCursorTreeAdapter, пример использования
Вот, нашёл описание, как настраивать lint: http://developer.android.com/intl/ru/to ... -lint.html
Строки, которые не нужно переводить, можно поместить в файл donottranslate.xml - но ошибка исчезает не сразу.
Как запретить проверять переводы на конкретный язык - так и не нашёл.
Строки, которые не нужно переводить, можно поместить в файл donottranslate.xml - но ошибка исчезает не сразу.
Как запретить проверять переводы на конкретный язык - так и не нашёл.
Re: Урок 53. SimpleCursorTreeAdapter, пример использования
Добрый. Подскажите пожалуйста как получить элемент группы в setOnChildClickListener?
id группы, id элемента и группу получил, а элемент группы не могу понять как. Из базы данных запрос идет с сортировкой и выборкой, так-что по id не получается.
elvMain.setOnChildClickListener(new OnChildClickListener() {
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
cursor.moveToPosition(groupPosition);
pos = cursor.getString(2);
tvText1.setText(String.format("%s, %s, %s",groupPosition, childPosition, pos));
return false;
}
});
Заранее благодарен.
id группы, id элемента и группу получил, а элемент группы не могу понять как. Из базы данных запрос идет с сортировкой и выборкой, так-что по id не получается.
elvMain.setOnChildClickListener(new OnChildClickListener() {
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
cursor.moveToPosition(groupPosition);
pos = cursor.getString(2);
tvText1.setText(String.format("%s, %s, %s",groupPosition, childPosition, pos));
return false;
}
});
Заранее благодарен.
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Урок 53. SimpleCursorTreeAdapter, пример использования
Для этого у SimpleCursorTreeAdapter есть метод getChild(int groupPosition, int childPosition).
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Урок 53. SimpleCursorTreeAdapter, пример использования
Добрый. Всех с наступающем новым годом!
Не могу понять: setOnChildClickListener не прописан вообще, а при нажатии на элемент группы выдает
12-31 16:55:33.708: E/CursorWindow(31844): Bad request for field slot 0,-1. numRows = 47, numColumns = 7
Не могу понять: setOnChildClickListener не прописан вообще, а при нажатии на элемент группы выдает
12-31 16:55:33.708: E/CursorWindow(31844): Bad request for field slot 0,-1. numRows = 47, numColumns = 7
Re: Урок 53. SimpleCursorTreeAdapter, пример использования
Проблема решилась.
Я так понимаю при использовании адаптеров обязательным должно быть наличие поля _id.
У меня была связанная таблица. После того как одно поле я переименовал в "_id" все заработало.
Я так понимаю при использовании адаптеров обязательным должно быть наличие поля _id.
У меня была связанная таблица. После того как одно поле я переименовал в "_id" все заработало.
Re: Урок 53. SimpleCursorTreeAdapter, пример использования
Ага, обязательно. И это, по-моему, не тайна.. на уроках вроде упоминалось.lancer писал(а):Проблема решилась.
Я так понимаю при использовании адаптеров обязательным должно быть наличие поля _id.
У меня была связанная таблица. После того как одно поле я переименовал в "_id" все заработало.
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: Урок 53. SimpleCursorTreeAdapter, пример использования
del
Последний раз редактировалось Artemko 03 авг 2013, 14:34, всего редактировалось 1 раз.
Re: Урок 53. SimpleCursorTreeAdapter, пример использования
Как при нажатии на запись получать данные из нее? Данные которые были занесены в БД
Re: Урок 53. SimpleCursorTreeAdapter, пример использования
в уроках есть это.
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: Урок 53. SimpleCursorTreeAdapter, пример использования
Подскажите, пожалуйста, где взять пример класса TreeView с 3-4 уровнями вложенности?
Пробовал http://code.google.com/p/tree-view-list-android/
Проект ориентирован на дерево check box’ов, у меня задача - поля ввода (суммы).
Убрал checkbox'и, добавил текстовые поля - в итоге, при первом кликании на поле ввода, появляется не цифровая, а алфавитная клавиатура (хотя стоит свойство android:inputType="numberDecimal"), фокус ввода в никуда, и только при повторном кликании на поле ввода появляется нормальная клавиатура и вводимые данные начинают попадать в поле.
Пробовал http://code.google.com/p/tree-view-list-android/
Проект ориентирован на дерево check box’ов, у меня задача - поля ввода (суммы).
Убрал checkbox'и, добавил текстовые поля - в итоге, при первом кликании на поле ввода, появляется не цифровая, а алфавитная клавиатура (хотя стоит свойство android:inputType="numberDecimal"), фокус ввода в никуда, и только при повторном кликании на поле ввода появляется нормальная клавиатура и вводимые данные начинают попадать в поле.
Re: Урок 53. SimpleCursorTreeAdapter, пример использования
пример по твоей ссылке работает отлично
текстовые поля в ветках дерева плохой вариант с точки зрения интерфейса. Но если хочешь реализовать придется помучиться.
текстовые поля в ветках дерева плохой вариант с точки зрения интерфейса. Но если хочешь реализовать придется помучиться.
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: Урок 53. SimpleCursorTreeAdapter, пример использования
Проблема оказалась типичная.
Нашёл решение на http://stackoverflow.com/questions/8258 ... w-keyboard
Change to activity in mainfest.xml:
<activity android:name= ".yourActivity" android:windowSoftInputMode="adjustPan"/>
- после этого клавиатура и фокус стали в норме.
рекомендуют также указать
<ListView
android:id="@android:id/list"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:descendantFocusability="beforeDescendants"
/>
Нашёл решение на http://stackoverflow.com/questions/8258 ... w-keyboard
Change to activity in mainfest.xml:
<activity android:name= ".yourActivity" android:windowSoftInputMode="adjustPan"/>
- после этого клавиатура и фокус стали в норме.
рекомендуют также указать
<ListView
android:id="@android:id/list"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:descendantFocusability="beforeDescendants"
/>
Re: Урок 53. SimpleCursorTreeAdapter, пример использования
Подскажите?! Имеется БД с главной таблицей с полями название, id автора, id издания и тд, и имеются вспомогательные таблицы уже со списком авторов и изданий. Я с помощью CursorAdaptera вывожу название в листвьев и хочу сделать чтоб автор и издание тоже выходили. Будет ли ужасным решение, каждый раз в адаптере делать запрос к бд, получать курсоры с авторов и изданий нужных мне(по айди) и вставлять в листвьев???
и еще такой вопрос: я открыл бд, взял курсор и закрыл бд. Теперь работая с курсором(получая из него значения и тд) бд не трогается?
и еще такой вопрос: я открыл бд, взял курсор и закрыл бд. Теперь работая с курсором(получая из него значения и тд) бд не трогается?
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Урок 53. SimpleCursorTreeAdapter, пример использования
Если ID в связанных таблицах объявлен как "INTEGER PRIMARY KEY" то для SQLite это не критично, в отличии от серверных баз данных. Только в данном случае нужно постоянно держать БД открытой.
Однако, можно сделать нормальный запрос с использованием JOIN и не мучиться подобными вопросами.
Однако, можно сделать нормальный запрос с использованием JOIN и не мучиться подобными вопросами.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Урок 53. SimpleCursorTreeAdapter, пример использования
1 Какой ты хочешь список? дерево? так в уроке все написано ж, выбирать и строить дерево нужно сразу.
или я не поняла вопрос.
2 обращение к бд идет в момент запроса. КУрсор уже к бд отношения не имеет. Закрывать бд тоже не нужно после запросов
http://stackoverflow.com/questions/4464 ... n-database
или я не поняла вопрос.
2 обращение к бд идет в момент запроса. КУрсор уже к бд отношения не имеет. Закрывать бд тоже не нужно после запросов
http://stackoverflow.com/questions/4464 ... n-database
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: Урок 53. SimpleCursorTreeAdapter, пример использования
Почему так происходит?
Две активити. На первой ExpandableListView с MyAdapter extends SimpleCursorTreeAdapter.
Разворачиваю несколько групп, выделяю несколько чилдов. И жму кнопку "Открыть второе активити". При закрытии второго активити (даже стрелкой "назад"). Возвращаемся в первое активити и что видим? Все группы ExpandableListView свернуты. Такое ощущение, что произошло обновление контрола.
Почему это происходит и как с этим бороться?
Хочу чтобы в первом активити все оставалось без изменений, Вплоть до выделенных чилдов и позиции скролинга.
PS: кстати если второе активити сделать с диалоговой темой, то все работает ка мне надо. Логики не понимаю.
Две активити. На первой ExpandableListView с MyAdapter extends SimpleCursorTreeAdapter.
Разворачиваю несколько групп, выделяю несколько чилдов. И жму кнопку "Открыть второе активити". При закрытии второго активити (даже стрелкой "назад"). Возвращаемся в первое активити и что видим? Все группы ExpandableListView свернуты. Такое ощущение, что произошло обновление контрола.
Почему это происходит и как с этим бороться?
Хочу чтобы в первом активити все оставалось без изменений, Вплоть до выделенных чилдов и позиции скролинга.
PS: кстати если второе активити сделать с диалоговой темой, то все работает ка мне надо. Логики не понимаю.
Re: Урок 53. SimpleCursorTreeAdapter, пример использования
Чтобы понять отличие "логику", нужно почитать про жизненный цикл активити.
на первый вопрос ответ тут http://stackoverflow.com/questions/4184 ... stactivity
к сожалению, придется вручную восстанавливать положение веток.
на первый вопрос ответ тут http://stackoverflow.com/questions/4184 ... stactivity
к сожалению, придется вручную восстанавливать положение веток.
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: Урок 53. SimpleCursorTreeAdapter, пример использования
Вау!!!
Отличный пример. Спасибо!!!
Отличный пример. Спасибо!!!
Re: Урок 53. SimpleCursorTreeAdapter, пример использования
По мотивам примера сделал такой класс:
Теперь достаточно создать объект этого класса:
И когда надо сохранить состояние ExpandableListView делаем
и когда надо восстановить состояние:
Причем этот класс в отличии от примера сворачивает "лишние" группы, а так же восстанавливает позицию скроллинга.
Если кому пригодится, буду рад.
Код: Выделить всё
public static class elv_State {
/// Сохраненное кол-во развернутых групп ///
public static int expandedGroupCount;
/// Сохраненные IDs развернутых групп ///
public static long expandedGroupIds[];
/// Сохраненное POSITION первого видимого элемента ///
public static int firstPos;
/// Сохраняем состояние ExpandableListView ///
public static void save_state(ExpandableListView elv) {
expandedGroupCount = countExpandedGroups(elv);
firstPos = elv.getFirstVisiblePosition();
expandedGroupIds = new long[expandedGroupCount];
ExpandableListAdapter adapter = elv.getExpandableListAdapter();
if (adapter != null) {
for (int i = 0, ii = 0; i < adapter.getGroupCount(); i++) {
if (elv.isGroupExpanded(i)) {
expandedGroupIds[ii++] = adapter.getGroupId(i);
}
}
}
}
/// Восстанавливаем состояние ExpandableListView ///
public static void restore_state(ExpandableListView elv) {
if (expandedGroupIds != null) {
ExpandableListAdapter adapter = elv.getExpandableListAdapter();
if (adapter != null) {
for (int i = 0; i < adapter.getGroupCount(); i++) {
if (inArray(expandedGroupIds, adapter.getGroupId(i)))
elv.expandGroup(i);
else
elv.collapseGroup(i);
}
}
}
elv.setSelection(firstPos);
}
private static boolean inArray(long[] array, long element) {
for (long l : array) {
if (l == element) {
return true;
}
}
return false;
}
private static int countExpandedGroups(ExpandableListView elv) {
int res = 0;
for (int i = 0; i < elv.getExpandableListAdapter().getGroupCount(); i++) {
if (elv.isGroupExpanded(i)) {
res++;
}
}
return res;
}
}
Код: Выделить всё
elv_State elvState;
Код: Выделить всё
elvState.save_state(elv_products);
Код: Выделить всё
elvState.restore_state(elv_products);
Если кому пригодится, буду рад.
Re: Урок 53. SimpleCursorTreeAdapter, пример использования
Что-то не могу решить задачку, второй день бьюсь.
Известно id чилда. Нужно выделить этот чилд (сделать ему checked).
Есть красивое решение?
Известно id чилда. Нужно выделить этот чилд (сделать ему checked).
Есть красивое решение?