Похоже, вы пытались привести «android.support.v7.widget.GridLayout» в «android.widget.GridLayout».
Внутри строки кода 102 в вашей основной деятельности (из добавленной вами ошибки). Вы не можете разыграть это, и именно поэтому ваше приложение зависло.
Если вы хотите, чтобы все работало на вас - решите, хотите ли вы использовать макет сетки или компоновку сетки поддержки и использовать ее без другого (если вы выбрали опцию a, вам нужно привести ее к варианту a и наоборот).
Просто сделанный быстрый тест. Это, кажется, работает:
mysql> select * from categories c, items i
-> where i.categoryid = c.id
-> group by c.id;
+------+---------+------+------------+----------------+
| id | name | id | categoryid | name |
+------+---------+------+------------+----------------+
| 1 | Cars | 1 | 1 | Ford |
| 2 | Games | 4 | 2 | Tetris |
| 3 | Pencils | 6 | 3 | Pencil Factory |
+------+---------+------+------------+----------------+
3 rows in set (0.00 sec)
Я думаю, что это выполнило бы Ваш первый вопрос. Не уверенный во втором - я думаю, что нуждается во внутреннем запросе с порядком случайным () или что-то как этот!
Mysql позволяет, включают не совокупные столбцы и нет никакой гарантии детерминизма, но по моему опыту я почти всегда получаю первые значения.
Так обычно (но не гарантируемое) это даст Вам первое
select *
from categories c, items i
where i.categoryid = c.id
group by c.id;
Если Вы хотите, гарантировал, что необходимо будет сделать что-то как
select categories.id, categories.name, items.id, items.name
from categories inner join
items on items.categoryid = categories.id and
items.id = (select min(items2.id) from items as items2 where items2.categoryid = category.id)
Если Вы хотите случайные ответы, необходимо будет изменить подзапрос немного
select categories.id, categories.name, items.id, items.name
from categories inner join
items on items.categoryid = categories.id and
items.id = (select items2.id from items as items2 where items2.categoryid = category.id order by rand() limit 1)
Mysql позволяет Вам, чтобы иметь столбцы, не включенные в группировку или агрегат, в этом случае у них есть случайные значения:
select category.id, category.name, itemid, itemname
inner join
(select item.categoryid, item.id as itemid, item.name as itemname
from item group by categoryid)
on category.id = categoryid
Или, для минимумов,
select category.id, category.name, itemid, itemname
inner join
(select item.categoryid, min(item.id) as itemid, item.name as itemname
from items
group by item.categoryid)
on category.id = categoryid