Міністерство освіти і науки України
Кіровоградський національний технічний університет
Кафедра програмування та захисту інформації
Дисципліна : Кросплатформені мови програмування
Лабораторна робота №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);