Міністерство освіти і науки України
Кіровоградський національний технічний університет
Кафедра програмування та захисту інформації
Дисципліна : Кросплатформені мови програмування
Лабораторна робота №6
Тема: Основи роботи з різноманітними масивами даних
МЕТА: Отримати практичні навики розробки мобільних програм під
керуванням ОС ANDROID.
ЗНАТИ: Основи Eclipse чи Android Studio
ЗАВДАННЯ: Використовуючи наявну електронну документацію створити мобільне ПЗ під керуванням ОС Android (основа 5 ЛР). Яке складається з списку (ListView). В списку відтворюється наступна інформація: будь-які текстові дані в правій частині екрану рядка і будь-яка картинка в лівій частині екрану цього ж рядка. Список повинен містити не менше десяти рядків з описаними вище даними.
При натисненні на рядок списку переходить в нове вікно. В новому
вікні повинна відтворюватися наступна інформація:
– Текстове поле з відображенням обраного елементу меню;
– Картинка 1;
– Картинка 2;
– Картинка 3;
– Картинка 4;
– Багаторядкове поле з довільним текстом до кожного елементу меню.
Наприклад в списку знаходяться дані про ваших друзів (картинка і текстова інформація).
Після натиснення на рядок з другом відкривається нове вікно з розширеною інформацією: 4 фото та інформація про них.
package com.nick.krossplatform_laba_6;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ListView;public class MainActivity extends Activity { private ListView listView1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Weather weather_data[] = new Weather[] { new Weather(R.drawable.weat_1, "Солнечно"), new Weather(R.drawable.weat_2, "Дождь"), new Weather(R.drawable.weat_3, "Снег"), new Weather(R.drawable.weat_4, "Пасмурно"), new Weather(R.drawable.weat_5, "Облачно"), new Weather(R.drawable.weat_6, "Град"), new Weather(R.drawable.weat_7, "Гроза"), new Weather(R.drawable.weat_8, "Шторм"), new Weather(R.drawable.weat_9, "Ветрено"), new Weather(R.drawable.weat_10, "Дождь со снегом") }; WeatherAdapter adapter = new WeatherAdapter(this, R.layout.listview_item_row, weather_data); listView1 = (ListView) findViewById(R.id.listView1); View header = (View) getLayoutInflater().inflate(R.layout.listview_header_row, null); listView1.addHeaderView(header); listView1.setAdapter(adapter); listView1.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int position, long id) { switch (position) { case 1: Intent Sunny = new Intent(MainActivity.this, FirstActivity.class); startActivity(Sunny); break; case 2: Intent Rain = new Intent(MainActivity.this, SecondActivity.class); startActivity(Rain); break; case 3: Intent Snow = new Intent(MainActivity.this, ThirdActivity.class); startActivity(Snow); break; case 4: Intent Mainly_cloudy = new Intent(MainActivity.this, FourthActivity.class); startActivity(Mainly_cloudy); break; case 5: Intent Partly_cloudy = new Intent(MainActivity.this, FifthActivity.class); startActivity(Partly_cloudy); break; case 6: Intent Grad = new Intent(MainActivity.this, SixthActivity.class); startActivity(Grad); break; case 7: Intent Lightning = new Intent(MainActivity.this, SeventhActivity.class); startActivity(Lightning); break; case 8: Intent Storm = new Intent(MainActivity.this, EighthActivity.class); startActivity(Storm); break; case 9: Intent Windy = new Intent(MainActivity.this, NinthActivity.class); startActivity(Windy); break; case 10: Intent Rain_snow = new Intent(MainActivity.this, TenthActivity.class); startActivity(Rain_snow); break; } } }); }}
КОНТРОЛЬНІ ЗАПИТАННЯ
1. Як використовувати один обробник для декількох View-елементів – за допомогою switch/case.
2. Навіщо потрібна папка res/values, що в ній можна зберігати і як використовувати – у цій папці зберігаються ресурсні файли xml, наприклад файли кольору, id, стиль і т.д.
3. Що таке Log дані та випливаючи повідомлення – це дані які тимчасово відображаються на екрані щоб повідомити користувача.
4. Як малювати екран програмно, а не через layout-файл – LinearLayout linLayout = new LinearLayout(this);
5. Як додавати компоненти на екран прямо з програми – Button btn = new Button(this); btn.setText("Button"); linLayout.addView(btn, lpView);