Merged with old project
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				Merge core/template-android-project to this repo / merge-if-needed (push) Successful in 15s
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	Merge core/template-android-project to this repo / merge-if-needed (push) Successful in 15s
				
			This commit is contained in:
		
							
								
								
									
										36
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,36 @@ | |||||||
|  | [](https://sicampus.ru/gitea/core/docs/src/branch/main/how-upload-project.md) | ||||||
|  |  | ||||||
|  | # Практическая работа. New Words | ||||||
|  |  | ||||||
|  | В данном практическом задании предлагается дописать существующий проект Android приложения, а именно реализовать возможность сохранения списка английских слов, введённых пользователем, в текстовый файл. | ||||||
|  |  | ||||||
|  | 1. В разметке приложения должны присутствовать элементы, указанные в [табл. 1](#table1). Все элементы разметки должны быть полностью видны и в случае открытой экранной клавиатуры. | ||||||
|  | 2. Слова вводятся в поле с `id/words_input`, разделяются запятой (с пробелом или без пробела). Необходимо сохранить все введённые слова в файл **`words.txt`** в том же порядке. | ||||||
|  | 3. Каждое слово в файле **`words.txt`** должно находиться на отдельной строке; в файле не должно быть слов, которые не были введены в *EditText*. | ||||||
|  | 4. Создание файла происходит по нажатии на *View* (или любого наследника, например, *Button*) c `id/write_internal` или `id/write_external`. | ||||||
|  | 5. Если было совершено нажатие на *View* c `id/write_internal`, то файл создаётся во внутреннем хранилище. Если было совершено нажатие на *View* c `id/write_external`, то файл создается во внешнем хранилище. | ||||||
|  | 6. На экране должна быть расположена *TextView* с `id/file_content`, в которую по нажатию на любую кнопку рассчитывается количество введённых пользователем слов. | ||||||
|  | 7. Файл должен размещаться в папке с номером текущего месяца (нумерация с 1), которая находится в папке приложения во внутреннем (внешнем) хранилище устройства. | ||||||
|  |  | ||||||
|  | Для получения хранилища используйте функцию: | ||||||
|  | ```java | ||||||
|  | // Вызов внутри Activity | ||||||
|  | void foo() { | ||||||
|  |     getExternalFilesDir(null); // Получение пути до внешнего хранилища | ||||||
|  |     getFilesDir().getPath(); // Получение пути до внутреннего хранилища | ||||||
|  | } | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | Например, при использовании внешнего хранилища путь к файлу может выглядеть так: | ||||||
|  | ```text | ||||||
|  | /storage/emulated/0/Android/ru.myitschool.lab23/files/3/words.txt | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | | № | тип View | идентификатор | | ||||||
|  | | - | :------: | ------------- | | ||||||
|  | | 1 | *View*   | `write_internal` | | ||||||
|  | | 2 | *View*   | `write_external` | | ||||||
|  | | 3 | *TextView*   | `file_content` | | ||||||
|  | | 4 | *EditText*   | `words_input` | | ||||||
|  |  | ||||||
|  | <a id="table1">*Таблица 1: Элементы пользовательского интерфейса*</a> | ||||||
| @@ -11,6 +11,16 @@ | |||||||
|         android:roundIcon="@mipmap/ic_launcher_round" |         android:roundIcon="@mipmap/ic_launcher_round" | ||||||
|         android:supportsRtl="true" |         android:supportsRtl="true" | ||||||
|         android:theme="@style/Theme.Default" |         android:theme="@style/Theme.Default" | ||||||
|         tools:targetApi="31" /> |         tools:targetApi="31"> | ||||||
|  |         <activity | ||||||
|  |             android:name=".MainActivity" | ||||||
|  |             android:exported="true"> | ||||||
|  |             <intent-filter> | ||||||
|  |                 <action android:name="android.intent.action.MAIN" /> | ||||||
|  |  | ||||||
|  |                 <category android:name="android.intent.category.LAUNCHER" /> | ||||||
|  |             </intent-filter> | ||||||
|  |         </activity> | ||||||
|  |     </application> | ||||||
|  |  | ||||||
| </manifest> | </manifest> | ||||||
							
								
								
									
										20
									
								
								app/src/main/java/ru/myitschool/work/MainActivity.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								app/src/main/java/ru/myitschool/work/MainActivity.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | package ru.myitschool.work; | ||||||
|  |  | ||||||
|  | import android.os.Bundle; | ||||||
|  |  | ||||||
|  | import androidx.annotation.Nullable; | ||||||
|  | import androidx.appcompat.app.AppCompatActivity; | ||||||
|  |  | ||||||
|  | import ru.myitschool.work.databinding.ActivityMainBinding; | ||||||
|  |  | ||||||
|  | public class MainActivity extends AppCompatActivity { | ||||||
|  |  | ||||||
|  |     private ActivityMainBinding binding; | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     protected void onCreate(@Nullable Bundle savedInstanceState) { | ||||||
|  |         super.onCreate(savedInstanceState); | ||||||
|  |         binding = ActivityMainBinding.inflate(getLayoutInflater()); | ||||||
|  |         setContentView(binding.getRoot()); | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										10
									
								
								app/src/main/res/layout/activity_main.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								app/src/main/res/layout/activity_main.xml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |     xmlns:app="http://schemas.android.com/apk/res-auto" | ||||||
|  |     xmlns:tools="http://schemas.android.com/tools" | ||||||
|  |     android:id="@+id/main" | ||||||
|  |     android:layout_width="match_parent" | ||||||
|  |     android:layout_height="match_parent" | ||||||
|  |     tools:context=".MainActivity"> | ||||||
|  |  | ||||||
|  | </androidx.constraintlayout.widget.ConstraintLayout> | ||||||
| @@ -1,3 +1,3 @@ | |||||||
| <resources> | <resources> | ||||||
|     <string name="app_name">Work</string> |     <string name="app_name">New Words</string> | ||||||
| </resources> | </resources> | ||||||
		Reference in New Issue
	
	Block a user