Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Yulunga
302 / 205 / 62
Регистрация: 22.04.2013
Сообщений: 1,193
Завершенные тесты: 1
#1

БД или Enum? Плюс выбрать рандомно - Программирование Android

19.01.2015, 12:00. Просмотров 411. Ответов 7
Метки нет (Все метки)

приветствую!
на одном экране 24 кнопки(сделал кнопки потому, что они нажимаются). 24 разных чего-то.
задача : выбрать случайным образом из них какое-то количество. опции - можно закрепить кнопку, тогда она точно будет участвовать в "рандоме". можно наоборот открепить, тогда она точно не будет выбрана.
вопрос 1 - доступа к интернету нет, поэтому можно лучше сделать через Енум ? хотя всего будет 200 таких строчек.( на других экранах ) . или всё-таки базу данных тем не менее? (

вопрос два - как лучше сделать ? отдельное поле с тремя значениями(0-1-2) например 0 - не выбрано, 1 - выбрано, 2 - нельзя выбрать. или как ?
сорри, что много букв
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2015, 12:00
Я подобрал для вас темы с готовыми решениями и ответами на вопрос БД или Enum? Плюс выбрать рандомно (Программирование Android):

Enum или enum class и где его располагать
Для удобства хочу сделать перечисление уровней через enum. Но запутался, как...

Выбрать рандомно и показать
Как выбрать рандомный вопрос и показать его, при запуске скрипта? var...

выбрать рандомно TPanel
всем привет! проблема такова: имеется несколько панелей на форме (количество...

Как выбрать файл рандомно
Вообщем, получается выбрать рандомно файл, если нет ещё внутренних папок. Как...

Рандомно выбрать из таблицы 10 записей
Здравствуйте. уважаемые форумчане! Не знаю как написать запрос, который...

Как рандомно выбрать из текста слово?
Допустим,у меня в текстовом документе есть слова.Мне надо чтоб он при нажатии...

7
Sony17
28 / 28 / 10
Регистрация: 24.05.2013
Сообщений: 157
20.01.2015, 11:08 #2
Че? Нифига не понял
0
angryrobot
Командир зеленых роботов
348 / 285 / 54
Регистрация: 08.10.2013
Сообщений: 565
20.01.2015, 11:41 #3
Попробуйте хорошенько сформулировать то, что нужно сделать. Я честно перечитывал ваше сообщение раз пять но мало чего понял. При чем тут вообще интернет и база данных?
0
contedevel
57 / 55 / 13
Регистрация: 07.10.2012
Сообщений: 608
20.01.2015, 11:44 #4

Не по теме:

У Пети 5 яблок, у Маши - 3. Сколько яблок у Васи?


Напишите понятнее, в чем проблема?
0
Yulunga
302 / 205 / 62
Регистрация: 22.04.2013
Сообщений: 1,193
Завершенные тесты: 1
20.01.2015, 12:01  [ТС] #5
какое редкое единодушие )
я "схитрил" и задал два вопроса разных в одном посте. нарушив, наверно.
окей, извиняюсь и тогда задайте, пожалуйста, общее направление, как делать.

есть список из 24 позиций.
как список его использовать неудобно(мне), удобно сделать 8 рядов по 3 кнопки.
каждй элемент(кнопку) можно привести в 3 состояния : "выбрано", "нельзя выбрать", "неизвестно" ( по умолчанию "неизвестно" ).
после чего нажать кнопочку и случайным образом выбрать 10 элементов ( "выбрано" должно быть выбрано в любом случае, "нельзя выбрать" не должно быть выбрано, остальное всё равно ) .
как оптимальнее это сделать ?

про БД и инет замнём для ясности.
вот. вроде яснее. спасибо.
0
contedevel
57 / 55 / 13
Регистрация: 07.10.2012
Сообщений: 608
20.01.2015, 12:13 #6

Не по теме:

Мда... все равно не до конца понял


Ну, если Вам не удобен список по какой-то причине, то сделайте двумерный массив, в него прописывайте состояние, если число кнопок заранее известно, то в списке нет особой надобности.
Или абстрактный класс и от него три потомка, если к ООП строго относитесь, а далее двумерный массив с этим типом.

Если нужна ссылка на кнопку, то можете в класс еще указатель добавить
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
20.01.2015, 13:18 #7
Наследуете свой класс от Button, немножко дописываете:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class MyButton extends Button {
 
    public static final int STATUS_UNPICKED = 0;
    public static final int STATUS_PICKED = 1;
    public static final int STATUS_UNAVAILABLE = 2;
 
    private int status = STATUS_UNPICKED;
 
    public MyButton(Context context) {
        super(context);
    }
 
    public MyButton(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
 
    public MyButton(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }
 
    public void setStatus(int status) {
        this.status = status;
    }
 
    public int getStatus() {
        return status;
    }
}
Потом собираете все кнопки сколько вам нужно в List<MyButton> и отправляете его в метод, на подобии такого:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public void showRandomButton(List<MyButton> buttons, int buttonCount){
 
        List<MyButton> availableButtons = new ArrayList<>();
        int pickedCount = 0;
        for(MyButton button : buttons){
            int status = button.getStatus();
            if(status == MyButton.STATUS_UNPICKED){
                availableButtons.add(button);
                button.setVisibility(View.GONE);
            }else if(status == MyButton.STATUS_PICKED){
                pickedCount++;
            }else if(status == MyButton.STATUS_UNAVAILABLE){
                button.setVisibility(View.GONE);
            }
        }
 
        int countLeft = buttonCount - pickedCount;
 
        for(int i = 0; i < countLeft; i++){
            int randomIndex = new Random().nextInt(availableButtons.size());
            availableButtons.get(randomIndex).setVisibility(View.VISIBLE);
            availableButtons.remove(randomIndex);
        }
 
    }
Сам выбор случайных кнопок очень не оптимально я описал, но основное понятно должно быть.
1
Yulunga
302 / 205 / 62
Регистрация: 22.04.2013
Сообщений: 1,193
Завершенные тесты: 1
20.01.2015, 13:33  [ТС] #8
отлично просто. спасибо большое!!
0
20.01.2015, 13:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2015, 13:33
Привет! Вот еще темы с решениями:

Рандомно выбрать один объект из нескольких
У меня есть n объектов 1 класса. Как из них выбрать рандомный?

Выбрать значение enum методом рефлексии
Привет всем! Стала задача: В структуре layer есть enum Place ...

Как рандомно выбрать комбинации из 4 точек массива?
Вечер добрый. Возникла проблема с генерацией случайных неповторяющихся...

Как рандомно выбрать один из трех массивов?
Есть три массива с инфой и мне нужно рандомно выбрать один из этих трех...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru