Модераторы: javastic
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Какой можно применить аоглорим? 
:(
    Опции темы
Vladimirys
Дата 13.2.2012, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 13.2.2012

Репутация: нет
Всего: нет



Суть в следующем, нужно,  чтобы приложение, при вводе числа, выводило на экран документ, с этим номером (из ресурсов). И  кроме как через (if) ничего не могу придумать, много будет таких (if).  
Какие еще могут быть варианты??

Это сообщение отредактировал(а) Vladimirys - 13.2.2012, 23:15
PM MAIL   Вверх
azusdex
Дата 14.2.2012, 01:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 26.12.2011

Репутация: 1
Всего: 1



Если правильно понял вопрос, то почему же не через switch ?
PM MAIL   Вверх
Vladimirys
Дата 14.2.2012, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 13.2.2012

Репутация: нет
Всего: нет



Так тоже самое и выйдет.. Думал переменную вот сюда (R.string...), не проходит.
А нужно вот что, к примеру, вводиться число 21,   и из ресурсов "извлекается" документ с таким же именем (только с "приставкой А" ибо чистые цифры тоже не принимаются в качестве имени..)
Вот и получается что если к примеру 100 документов, то и 100 операторов if да и switch, тоже.
PM MAIL   Вверх
azusdex
Дата 14.2.2012, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 26.12.2011

Репутация: 1
Всего: 1



R.string..... это переменая int 
в чем проблема сделать массив int[] и оттуда уже вызвать array[21] ?

Это сообщение отредактировал(а) azusdex - 14.2.2012, 21:06
PM MAIL   Вверх
Vladimirys
Дата 14.2.2012, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 13.2.2012

Репутация: нет
Всего: нет



Можно хотя бы пару строк как это будет выглядеть?  Не могу как то все в кучу собрать.

Приведу еще часть кода, как у меня  сейчас

Вводим число, и получаем в отработку.

Код

try {
                    Num = Integer.parseInt(Text1.getText().toString()); //
    
                } catch (NumberFormatException e) {
                    Num = 0;


После это сравниваем с имеющимся в ресурсах

Код

if (Num == 1) {
            
                    mText.setText(R.string.A1);
}

..........
i
Код

f (Num == 100) {
            
                    mText.setText(R.string.A100);
}





И так далее. Т.е сколько цифр столько и таких вот выражений. Меня это не радует.
И Хочется сделать это как то проще.   
Очень бы хотелось, непосредственно код, ну или четкий планsmile)


Это сообщение отредактировал(а) Vladimirys - 14.2.2012, 22:29
PM MAIL   Вверх
azusdex
Дата 14.2.2012, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 26.12.2011

Репутация: 1
Всего: 1



код извени написать не могу, готовлюсь к экзамену  smile 

но я думаю примерно так:

Код

         mText.setText(array[num]);


array - это массив который ты создал зарание и запихнул туда все R.string.A1 , R.string.A2 ,..... .
num - это индекс массива и так же в твоем случае это число запроса.
единственное что проверь setText вроде string, если да то и создавай массив String.

Добавлено через 1 минуту и 42 секунды
а в массив тебе все таки прийдется записать ручками все твои R.string....
PM MAIL   Вверх
Oligarh
Дата 5.4.2012, 02:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 23.9.2011

Репутация: нет
Всего: нет



Ребят, я если честно не совсем понимаю, что вы пытаетесь сделать, но предполагаю, что вам надо из папки на карте памяти открыть какой-то документ. Если это так, то могу предложить свой способ решения проблемы:
Путь к папке с ресурсами мы знаем, извлекаем список всех файлов:
Код

private List<String> listFiles(String dirResource) {
    ArrayList<String> list = new ArrayList<String>();
    File file = new File(dirResource);
    String[] temp = file.list();
    for (int i = 0; i < temp.length; i++) {
        File f = new File(dirResource + "/" + temp[i]);
        if (f.isFile()) {
            String str = dirResource + "/" + temp[i];
            list.add(nameFile(str));
        } else {
            list.addAll(listFiles(dirResource + "/" + temp[i]));
        }
        return list;
    }

private String nameFile(String s) {
    int index = s.lastIndexOf("/");
    return index != -1 ? s.substring(index + 1) : s;
}


Затем пробегаемся по полученному листу и выбираем нужны нам файл для открытия:
Код

for (String str : listFiles(dirResource)) {
    if (str == сложению приставки "А" и String.valueOf(твое введенноt число)) {
        открываешь свой файл
    }
}


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Android | Следующая тема »


 




[ Время генерации скрипта: 0.0667 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.