- Создаём текстовый редактор
- Операции с файлами
- activity_main.xml
- res/menu/menu_main.xml
- Класс MainActivity
- Сохранение настроек — Флажки
- res/values/strings.xml
- res/xml/preferences.xml
- Класс SettingsActivity
- Сохранение текстовых настроек
- Сохранение настроек — Списки
- res/values/arrays.xml
- Текстовые редакторы для Андроид
- Camscanner 6.4.5.22
- WPS Office 15.3.2
- SmartOffice 3.12.15
- Google Таблицы 1.21.405
- Microsoft Lens 16.0.144
- OfficeSuite 11.7.373
- Polaris Office 9.0.20
- Microsoft Office Mobile 16.0.14228.203
- Scanbot 7.10
- Microsoft Teams 1416.1.202
- Google Документы 1.21.223
- Microsoft PowerPoint 16.0.143
- Microsoft Excel 16.0.141
- Microsoft Word 16.0.143
- Docs To Go 4.004
- Работа с файловой системой
- Чтение и сохранение файлов
Создаём текстовый редактор
Операции с файлами
Рассмотрим вопросы ввода/вывода, которые являются распространёнными операциями в программировании. В Android можно сохранять файлы непосредственно на самом устройстве или на внешней карте памяти. Для каждой программы на устройстве выделяется собственная папка, в которой приложение может хранить свои файлы. По умолчанию другие приложения не могут обращаться к этим файлам. Если вы сохраняете файлы на внешнем накопителе, то доступ возможен.
Android использует стандартные операции ввода/вывода, принятые в Java. Например, Android реализует файловые потоки с помощью классов из пакета java.io, а также имеет собственные классы для работы с файлами внутри приложения.
Чтобы записать данные в файл, необходимо вызвать метод Context.openFileOutput() и передать в качестве параметра имя файла. Метод возвращает стандартный Java-объект FileOutputStream. Вызов метода для данного файла из другого приложения не будет работать, обратиться вы можете только к своим файлам. Например, чтобы создать файл и записать данные, пишем следующий код:
Если имеется статический файл, который надо упаковать с вашим приложением во время компиляции проекта, можно сохранить его в каталоге res/raw/, а затем открыть его при помощи метода Resources.openRawResource(). Он возвращает объект InputStream, который можно использовать для чтения файла. После окончания работы с потоком не забудьте его закрыть, вызвав метод close().
Создадим простейший аналог Блокнота, позволяющий записывать и читать данные из файла.
На экране активности разместим компонент EditText и растянем его:
activity_main.xml
Создадим пункты меню Открыть и Сохранить в ресурсах. Строковые ресурсы добавьте самостоятельно.
res/menu/menu_main.xml
В методах openFile() и saveFile() реализуем операции по открытию и сохранению файла. Для Kotlin код получился намного короче.
Класс MainActivity
Мы получили простой блокнотик, позволяющий сохранять записи в одном заданном файле. Вы можете усовершенствовать приложение, добавив возможность создания новых файлов и их удаления.
Сохранение настроек — Флажки
Расширим функциональность блокнота, добавив в него возможность сохранения различных настроек.
Подготовим различные настройки, которые будем хранить в файле строковых ресурсов strings.xml:
res/values/strings.xml
Теперь создадим файл настроек preferences.xml (если забыли, то перечитайте статью Сохранение настроек):
res/xml/preferences.xml
Итак, мы определили первую настройку под именем pref_openmode, которая будет или сразу загружать файл в поле редактирования, если установлен флажок, или открывать пустое поле, если флажок не установлен.
Создадим новую активность, которая наследует от класса PreferenceActivity. В классе активности для предпочтений внутри метода обратного вызова onCreate() нужно только вызвать метод addPreferencesFromResource() и загрузить XML-файл preferences.xml, содержащий наши настройки (пока одну):
Класс SettingsActivity
Не забываем добавить объявление активности SettingsActivity в файл манифеста AndroidManifest.xml:
Добавим новый пункт меню Настройки в меню (файл res/menu/main.xml), чтобы открывать подготовленное окно настроек.
В методе onOptionsItemSelected() класса MainActivity добавим новый блок when/switch:
Запустите приложение и убедитесь, что в меню появился новый пункт, который открывает окно настроек.
Чтение установок предпочтений нужно проводить в методе onResume(), который вызывается системой как во время запуска приложения, так и после закрытия окна настроек и возврата главной активности на передний план:
В методе getBoolean() второй параметр false означает значение по умолчанию для возвращаемого значения предпочтения, если запрос на чтение установленного значения закончится неудачей.
Мы создали первую настройку, позволяющую сразу открывать нужный файл для редактирования, если отметить галочкой нужный пункт.
Сохранение текстовых настроек
Добавим возможность устанавливать размер шрифта для текста. Откроем снова файл preferences.xml и добавим новый элемент EditTextPreference:
В метод onResume() добавим новый код для чтения установленного значения размера шрифта:
Запустите проект и вызовите окно настроек. Теперь у нас появилась опция установки размера шрифта. Если щёлкнуть на новом пункте, то откроется диалоговое окно с текстовым полем ввода.
Обращаю ваше внимание, что в нашем примере не проверяется пользовательский ввод, что может привести к ошибкам, если вместо числового значения для размера шрифта пользователь введёт слово Кот или любое другое слово из трёх букв. Никогда не доверяйте пользователю!
Сохранение настроек — Списки
Продолжим работу с текстовым редактором и добавим в него список для выбора стиля текста. В списке будет четыре опции: Обычный, Полужирный, Курсив, Полужирный+Курсив.
Подготовим массив строк и сохраним его в файле arrays.xml, который необходимо поместить в каталог res/values/ (хотя можно просто добавить в strings.xml).
res/values/arrays.xml
В файл preferences.xml добавим дополнительный элемент ListPreference, в котором определим атрибуты заголовка окна, привязку к массиву значений и значение по умолчанию:
Для чтения настроек из списка добавляем код в метод onResume() класса MainActivity:
Запустив проект, вы теперь увидите новую настройку Стиль для шрифта, которая открывает диалоговое окно для выбора стиля из списка. Обратите внимание, что в диалоговом окне нет кнопки сохранения, только Отмена. Изменения сохраняются сразу при выборе опции списка.
В статье Сохранение настроек можно прочитать дополнительные материалы по улучшению окна настроек. Например, можно добавить новую настройку, связанную с выбором цвета для текста.
Источник
Текстовые редакторы для Андроид
На Android можно бесплатно без регистрации и смс скачать текстовые редакторы, позволяющие редактировать текстовые файлы разных форматов (doc, pdf, txt и другие). Скачать нужный редактор можно в каталоге ниже.
Camscanner 6.4.5.22
Camscanner – простой менеджер для перевода фотографии с гаджета в полноценный документ. Программа качественно выполняет работу по конвертированию снимка в офисный формат, получившийся скан потом можно использовать в работе.
WPS Office 15.3.2
WPS Office — приложение с объединением необходимых офисных инструментов по работе с текстовым форматом, презентационным и электронно — табличным вне рабочего офиса.
SmartOffice 3.12.15
SmartOffice – набор офисных программ, который позволяет открывать, вносить изменения и сохранять электронные документы. В смартофисе можн обрабатывать таблицы, текстовые документы, а также слайд-шоу.
Google Таблицы 1.21.405
Google Таблицы — приложение для работы с таблицами с мобильных Андроид устройств. Пользователь может создавать таблицы и редактировать существующие, работать с ними коллективно, открыв доступ. Ячейки форматируются, данные возможно сортировать, делать диаграммы и формулы.
Microsoft Lens 16.0.144
Microsoft Office Lens – компактный мобильный сканер позволяет заняться оцифровкой с высокой скоростью на Андроид телефоне. Хороший инструмент для студентов и деловых людей, когда нет под рукой более тяжелой артиллерии: тяжелого ноутбука, сканера или мощного фотоаппарата. Приложение за считанные секунды преобразует снимки со смартфона в цифровые документы нужного вам формата.
OfficeSuite 11.7.373
OfficeSuite — набор офисного инструментария для работы с документами при помощи гаджета. Посредством приложение пользователю доступно редактирование, внесение правок, просмотр и сохранение в ином формате.
Polaris Office 9.0.20
Polaris Office — совокупность офисных приложений в одном для создания и редактирования документов на мобильном устройстве. Сохранение файлов разных форматов обеспечивает наличие свободного пространства от отдельных инструментов офиса в разрозненном виде.
Microsoft Office Mobile 16.0.14228.203
Microsoft Office Mobile — передовые программы офиса для просмотра и редактирования документов такие, как Word, Excel, PowerPoint теперь в гаджете. В программе вы можете добавлять комментарии и работать совместно с другими пользователями. В электронные таблицы Excel очень легко добавлять диаграммы и формулы.
Scanbot 7.10
Scanbot | PDF-сканер – это программа, которая поможет Вам получить скан чека или документа в отличном качестве всего за пару секунд обработки. Если Вы вынуждены на ходу отправлять важные сканы Вам просто необходима утилита Scanbot. В командировках особенно выручает карманный сканер для быстрого документооборота.
Microsoft Teams 1416.1.202
Microsoft Teams – это приложение, позволяющее объединить команду сотрудников в разработке проекта в Office 365. Программа представляет собой рабочее место для разговоров, собраний, обменов файлами и приложениями. Создано с целью облегчить работу над командными проектами и собрать в одном месте все инструменты.
Google Документы 1.21.223
Google Документы – приложение, которое помогает получить доступ к офисным менеджерам удаленно. Выбрав необходимую подпрограмму можно открывать, редактировать, сохранять изменения и менять формат документов.
Microsoft PowerPoint 16.0.143
Microsoft PowerPoint — офисная программа для редактирования и сохранения слайд-шоу. Позволяет открывать презентации и предоставлять друзьям и коллегам возможность общего просмотра. С приложением удобно работать в пути, когда нужно быстро отредактировать презентацию на ходу.
Microsoft Excel 16.0.141
Microsoft Excel – крутое офисное приложение, которое позволяет максимально эффективно и быстро работать с таблицами. Создавайте в течение нескольких минут таблицы с огромными массивами данных, редактируйте уже имеющиеся таблицы или работайте совместно с другими пользователями над общими проектами.
Microsoft Word 16.0.143
Microsoft Word – приложение для осуществления работы с текстовыми документами. Спокойно открывает загруженные рефераты, доклады и другую документацию, обрабатывает и сохраняет вместе с внесенными изменениями.
Docs To Go 4.004
Docs To Go — полноценный мобильный офис с проводником, который работает не только с документами, но и с папками. Создавайте необходимые документы и таблицы, находясь вдали от персонального компьютера.
Источник
Работа с файловой системой
Чтение и сохранение файлов
Работа с настройками уровня activity и приложения позволяет сохранить небольшие данные отдельных типов (string, int), но для работы с большими массивами данных, такими как графически файлы, файлы мультимедиа и т.д., нам придется обращаться к файловой системе.
ОС Android построена на основе Linux. Этот факт находит свое отражение в работе с файлами. Так, в путях к файлам в качестве разграничителя в Linux использует слеш «/», а не обратный слеш «\» (как в Windows). А все названия файлов и каталогов являются регистрозависимыми, то есть «data» это не то же самое, что и «Data».
Приложение Android сохраняет свои данные в каталоге /data/data/ / и, как правило, относительно этого каталога будет идти работа.
Для работы с файлами абстрактный класс android.content.Context определяет ряд методов:
boolean deleteFile (String name) : удаляет определенный файл
String[] fileList () : получает все файлы, которые содержатся в подкаталоге /files в каталоге приложения
File getCacheDir() : получает ссылку на подкаталог cache в каталоге приложения
File getDir(String dirName, int mode) : получает ссылку на подкаталог в каталоге приложения, если такого подкаталога нет, то он создается
File getExternalCacheDir() : получает ссылку на папку /cache внешней файловой системы устройства
File getExternalFilesDir(String type) : получает ссылку на каталог /files внешней файловой системы устройства
File getFileStreamPath(String filename) : возвращает абсолютный путь к файлу в файловой системе
FileInputStream openFileInput(String filename) : открывает файл для чтения
FileOutputStream openFileOutput (String name, int mode) : открывает файл для записи
Все файлы, которые создаются и редактируются в приложении, как правило, хранятся в подкаталоге /files в каталоге приложения.
Для непосредственного чтения и записи файлов применяются также стандартные классы Java из пакета java.io.
Итак, применим функционал чтения-записи файлов в приложении. Пусть у нас будет следующая примитивная разметка layout:
Поле EditText предназначено для ввода текста, а TextView — для вывода ранее сохраненного текста. Для сохранения и восстановления текста добавлены две кнопки.
Теперь в коде Activity пропишем обработчики кнопок с сохранением и чтением файла:
При нажатии на кнопку сохранения будет создаваться поток вывода FileOutputStream fos = openFileOutput(FILE_NAME, MODE_PRIVATE)
В данном случае введенный текст будет сохраняться в файл «content.txt». При этом будет использоваться режим MODE_PRIVATE
Система позволяет создавать файлы с двумя разными режимами:
MODE_PRIVATE : файлы могут быть доступны только владельцу приложения (режим по умолчанию)
MODE_APPEND : данные могут быть добавлены в конец файла
Поэтому в данном случае если файл «content.txt» уже существует, то он будет перезаписан. Если же нам надо было дописать файл, тогда надо было бы использовать режим MODE_APPEND:
Для чтения файла применяется поток ввода FileInputStream :
Подробнее про использование потоков ввода-вывода можно прочитать в руководстве по Java: https://metanit.com/java/tutorial/6.3.php
В итоге после нажатия кнопки сохранения весь текст будет сохранен в файле /data/data/название_пакета/files/content.txt
Где физически находится созданный файл? Чтобы увидеть его на подключенном устройстве перейдем в Android Stud в меню к пункту View -> Tool Windows -> Device File Explorer
После этого откроектся окно Device File Explorer для просмотра файловой системы устройства. И в папке data/data/[название_пакета_приложения]/files мы сможем найти сохраненный файл.
Источник