Файл: пользовательский интерфейс android. Использование активити.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.11.2023
Просмотров: 40
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Вы получите результат от Activity в методе onActivityResult(int requestCode, int resultCode, Intent data). Результат будет возвращен в качестве Intent.
Пример запуска Activity
Вот пример, который показывает как работает запуск Activity
Во-первых создайте MainActivity с вашим методом onCreate(), файл макета и кодом запроса.
1 | public class MainActivity extends Activity { |
2 | |
3 | // Unique request code for each use case |
4 | private static final int REQUEST_CODE_EXAMPLE = 0x9345; |
5 | |
6 | @Override |
7 | protected void onCreate(Bundle savedInstanceState) { |
8 | super.onCreate(savedInstanceState); |
9 | setContentView(R.layout.activity_main); |
10 | } |
11 | |
12 | } |
В методе onCreate() вы создадите новый экземпляр намерения (intent) чтобы запустить вторую Activity.
Когда будете готовы к запуску Activity, скажем в ответ на нажатие кнопки, вы вызовете startActivityForResult(), которая передаст свеже-созданное намерение и код запроса.
1 | // Create a new instance of Intent to start SecondActivity |
2 | final Intent intent = new Intent(this, SecondActivity.class); |
3 | |
4 | // This starts SecondActivity with the request code |
5 | startActivityForResult(intent, REQUEST_CODE_EXAMPLE); |
В вашей MainActivity, вам всё же нужно обработать результат событий Activity. Это выполняется путём реализации метода onActivityResult(). Вот так вы и получите результат от другой Activity.
Вот как это должно выглядеть:
1 | // onActivityResult only get called |
2 | // when the other Activity previously started using startActivityForResult |
3 | @Override |
4 | public void onActivityResult(int requestCode, int resultCode, Intent data) { |
5 | super.onActivityResult(requestCode, resultCode, data); |
6 | |
7 | // First we need to check if the requestCode matches the one we used. |
8 | if(requestCode == REQUEST_CODE_EXAMPLE) { |
9 | |
10 | // The resultCode is set by the SecondActivity |
11 | // By convention RESULT_OK means that whatever |
12 | // SecondActivity did was executed successfully |
13 | if(resultCode == Activity.RESULT_OK) { |
14 | // Get the result from the returned Intent |
15 | final String result = data.getStringExtra(SecondActivity.EXTRA_DATA); |
16 | |
17 | // Use the data - in this case, display it in a Toast. |
18 | Toast.makeText(this, "Result: " + result, Toast.LENGTH_LONG).show(); |
19 | } else { |
20 | // setResult wasn't successfully executed by SecondActivity |
21 | // Due to some error or flow of control. No data to retrieve. |
22 | } |
23 | } |
24 | } |
Теперь создайте вашу SecondActivity. Это должно быть похоже на код ниже.
1 | @Override |
2 | protected void onCreate(Bundle savedInstanceState) { |
3 | super.onCreate(savedInstanceState); |
4 | setContentView(R.layout.activity_detail); |
5 | |
6 | final Button button = (Button) findViewById(R.id.button); |
7 | // When this button is clicked we want to return a result |
8 | button.setOnClickListener(new View.OnClickListener() { |
9 | @Override |
10 | public void onClick(View view) { |
11 | // Create a new Intent object as container for the result |
12 | final Intent data = new Intent(); |
13 | |
14 | // Add the required data to be returned to the MainActivity |
15 | data.putExtra(EXTRA_DATA, "Some interesting data!"); |
16 | |
17 | // Set the resultCode as Activity.RESULT_OK to |
18 | // indicate a success and attach the Intent |
19 | // which contains our result data |
20 | setResult(Activity.RESULT_OK, data); |
21 | |
22 | // With finish() we close the SecondActivity to |
23 | // return back to MainActivity |
24 | finish(); |
25 | } |
26 | }); |
27 | } |
Прерывание Activity
Перед завершением Activity, будут вызваны соответствующие методы жизненного цикла.
Метод onPause() должен остановить все "слушания" и обновления интерфейса. Метод onStop() должен сохранять данные приложения. И наконец, метод onDestroy() высвободит любые ресурсы, выделенные для Activity.
Когда пользователь переключается обратно на приложение, которое было прервано системным событием, вызывается метод onResume(). На основе сохраненных данных, могут перерегистрироваться «слушатели» и переключиться обновления интерфейса
Заключение
В заключение можно сказать, что создание пользовательского интерфейса является очень важным аспектом разработки приложения для Android. Использование активити является одним из наиболее распространенных подходов к созданию интерфейса, так как это позволяет создать уникальный и интуитивно понятный интерфейс для конечного пользователя.
Однако, при создании пользовательского интерфейса Android необходимо учитывать множество факторов, таких как привлекательный дизайн, простота использования, эргономика и доступность.
Правильное использование активити позволит не только создать эффективный интерфейс, но и увеличить конверсию и привлекательность приложения для потенциальных пользователей.
Список использованной литературы
-
"Android Programming: The Big Nerd Ranch Guide" (3rd Edition) - Брэндон Марс и Филипп Хэрберт -
"Разработка приложений для платформы Android" - Александр Климчук -
"Компоненты Android-приложений и режимы жизненного цикла" - Роман Григорьев -
"Краткое руководство по разработке Android-приложений" - Эндрю Хэнт и Дэвид Маккарти -
"Наиболее эффективные методы разработки Android-приложений" - Володимир Колесніков -
"Программирование Android: разработка приложений для смартфонов и планшетов" - Уильямс Фрэмк и Франсис Николсон -
"Android UI Fundamentals: Develop & Design" - Джейсон Оувенс -
"Руководство по разработке приложений для Android с использованием Java" - Пол МакКартни.