Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Кіровоградський національний технічний університет
Кафедра програмування та захисту інформації
Дисципліна : Кросплатформені мови програмування
Лабораторна робота №2
Тема: Робота з контекстним меню
МЕТА: Отримати практичні навики розробки мобільних програм під
керуванням ОС ANDROID.
ЗНАТИ: Основи Eclipse чи Android Studio
ЗАВДАННЯ: Використовуючи наявну електронну документацію створити мобільне ПЗ під керуванням ОС Android. Яке складається з двох кнопок, меню та контекстного меню.
При натискання на кнопку №1 на кран виводиться меню з двома пунктами: «Приховано»; «Неприховано». При натисканні пункту «Приховано» приховується кнопка №2, при натисканні «Неприховано» – кнопка виводиться на екран. При довгому натисканні на кнопку №1 виводиться контекстне меню з пунктами обрання кольору кнопки, при обранні кольору відбувається зміна кольору кнопки №1.
package com.nick.krossplatform_laba_2;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.view.Menu;import android.view.MenuItem;import android.widget.Button;import android.support.v7.widget.PopupMenu;public class Main extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button firstButton = (Button) findViewById(R.id.firstButton); Button secondButton = (Button) findViewById(R.id.secondButton); firstButton.setOnLongClickListener(OnLongClickListener); secondButton.setOnClickListener(exit); } View.OnLongClickListener OnLongClickListener = new View.OnLongClickListener() { @Override public boolean onLongClick(View view) { showPopupMenu(view); return false; } }; View.OnClickListener exit = new View.OnClickListener() { @Override public void onClick(View v) { System.exit(0); } }; @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); menu.add(Menu.NONE, R.id.menu_action1, Menu.NONE, R.string.menu_action1); menu.add(Menu.NONE, R.id.menu_action2, Menu.NONE, R.string.menu_action2); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_action1: Button secondButton = (Button) findViewById(R.id.secondButton); secondButton.setVisibility(View.INVISIBLE); return true; case R.id.menu_action2: secondButton = (Button) findViewById(R.id.secondButton); secondButton.setVisibility(View.VISIBLE); return true; default: return super.onOptionsItemSelected(item); } } private void showPopupMenu(View v) { PopupMenu popupMenu = new PopupMenu(this, v); final Button firstButton = (Button) findViewById(R.id.firstButton); popupMenu.inflate(R.menu.menu); popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.menu1: firstButton.setBackgroundResource(R.color.red); return true; case R.id.menu2: firstButton.setBackgroundResource(R.color.blue); return true; case R.id.menu3: firstButton.setBackgroundResource(R.color.yellow); return true; case R.id.menu4: firstButton.setBackgroundResource(R.color.green); return true; default: return false; } } }); popupMenu.setOnDismissListener(new PopupMenu.OnDismissListener() { @Override public void onDismiss(PopupMenu menu) { } }); popupMenu.show(); } }
КОНТРОЛЬНІ ЗАПИТАННЯ
1. Опишіть елементи екрану та їх властивості – екран додатку складається с багатьох Activity, які у свою чергу складаються с багатьох ViewGroup.
2. Навіщо потрібен ViewGroup та RelativeLayout - це view group, яка має в своєму розпорядженні на екрані дочірні view певним чином щодо інших елементів.
3. Навіщо потрібен Layout-файл в Activity – для того щоб візуально розміщувати елементи view.
4. Що таке XML представлення – це файл з розміткою та положення усіх елементів на екрані.
5. Як змінити орієнтацію екрана – у налаштуваннях Layout-файлу обрати положення екрану вертикально або горизонтально.
6. Як працювати з меню – для роботи з меню потрібно створити окремий xml файл та описати розмітку меню.
7. Як створити пункти меню c ID – для цього потрібно створити ресурсний файл, за присвоїти кожному пункту меню ID.
8. Як групувати і сортувати пункти меню – у файлі з розміткою меню використовувати <group></group>.
9. Що таке контекстне меню - це меню яке з’являється на екрані після натиснення.