O ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARNI RIVOJLANTIRISH VAZIRLIGI

Similar documents
Android - JSON Parser Tutorial

MAD ASSIGNMENT NO 3. Submitted by: Rehan Asghar BSSE AUGUST 25, SUBMITTED TO: SIR WAQAS ASGHAR Superior CS&IT Dept.

Android - Widgets Tutorial

Create Parent Activity and pass its information to Child Activity using Intents.

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Switching UIs


Fragment Example Create the following files and test the application on emulator or device.

Tabel mysql. Kode di PHP. Config.php. Service.php

Android Apps Development for Mobile and Tablet Device (Level I) Lesson 2

Database Development In Android Applications

Our First Android Application

Vienos veiklos būsena. Theory

<uses-permission android:name="android.permission.internet" />

MAD ASSIGNMENT NO 2. Submitted by: Rehan Asghar BSSE AUGUST 25, SUBMITTED TO: SIR WAQAS ASGHAR Superior CS&IT Dept.

Applied Cognitive Computing Fall 2016 Android Application + IBM Bluemix (Cloudant NoSQL DB)

1. Location Services. 1.1 GPS Location. 1. Create the Android application with the following attributes. Application Name: MyLocation

Android Application Development. By : Shibaji Debnath

PENGEMBANGAN APLIKASI PERANGKAT BERGERAK (MOBILE)

Getting Started. Dr. Miguel A. Labrador Department of Computer Science & Engineering

Android Layout Types

CSE 660 Lab 7. Submitted by: Arumugam Thendramil Pavai. 1)Simple Remote Calculator. Server is created using ServerSocket class of java. Server.

Mobile Software Development for Android - I397

Android Programs Day 5

Introduction to Android Development

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar

CSE 660 Lab 3 Khoi Pham Thanh Ho April 19 th, 2015

Android App Development. Mr. Michaud ICE Programs Georgia Institute of Technology

TextView Control. EditText Control. TextView Attributes. android:id - This is the ID which uniquely identifies the control.

<uses-permission android:name="android.permission.internet"/>

Software Practice 3 Before we start Today s lecture Today s Task Team organization

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Saving State

Mobile Application Development Lab [] Simple Android Application for Native Calculator. To develop a Simple Android Application for Native Calculator.

Android UI Development

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar


android:layout_margintop="5dp" > <EditText android:layout_width="210dp"

An Android Studio SQLite Database Tutorial

Fragments. Lecture 11

COMP61242: Task /04/18

Intents. Your first app assignment

Basic GUI elements - exercises

EMBEDDED SYSTEMS PROGRAMMING Android Services

EMBEDDED SYSTEMS PROGRAMMING UI Specification: Approaches

Android Apps Development for Mobile and Tablet Device (Level I) Lesson 4. Workshop

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Managing Screen Orientation

Diving into Android. By Jeroen Tietema. Jeroen Tietema,

Android Application Development

IPN-ESCOM Application Development for Mobile Devices. Extraordinary. A Web service, invoking the SOAP protocol, in an Android application.

Android Navigation Drawer for Sliding Menu / Sidebar

ANDROID PROGRAMS DAY 3

Programming with Android: Introduction. Layouts. Dipartimento di Informatica: Scienza e Ingegneria Università di Bologna

Tutorial: Setup for Android Development

Eng. Jaffer M. El-Agha Android Programing Discussion Islamic University of Gaza. Data persistence

Time Picker trong Android

EMBEDDED SYSTEMS PROGRAMMING Application Basics

LifeStreet Media Android Publisher SDK Integration Guide

Tip Calculator. xmlns:tools=" android:layout_width="match_parent"

UNDERSTANDING ACTIVITIES

Data Persistence. Chapter 10

Android Basics. - Bhaumik Shukla Android Application STEALTH FLASH

// MainActivity.java ; Noah Spenser; Senior Design; Diabetic Breathalyzer

ELET4133: Embedded Systems. Topic 15 Sensors

Embedded Systems Programming - PA8001

Workshop. 1. Create a simple Intent (Page 1 2) Launch a Camera for Photo Taking

Mobila applikationer och trådlösa nät, HI1033, HT2013

Group B: Assignment No 8. Title of Assignment: To verify the operating system name and version of Mobile devices.

Real-Time Embedded Systems

Android Programming วรเศรษฐ ส วรรณ ก.

ITU- FAO- DOA- TRCSL. Training on. Innovation & Application Development for E- Agriculture. Shared Preferences

Manifest.xml. Activity.java

Computer Science E-76 Building Mobile Applications

TPCT s College of Engineering, Osmanabad. Laboratory Manual SDL-II. Mobile Application Development (Android) For. Third Year Students (CSE)

Produced by. Mobile Application Development. Eamonn de Leastar

Android Basics. Android UI Architecture. Android UI 1

An Overview of the Android Programming

Tutorial: Setup for Android Development

O ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI

Android SQLite Database Tutorial - CRUD Operations

Practical 1.ListView example

1. Explain the architecture of an Android OS. 10M The following diagram shows the architecture of an Android OS.

MODULE 2: GETTING STARTED WITH ANDROID PROGRAMMING

Android Beginners Workshop

Mobile Programming Lecture 10. ContentProviders

PROGRAMMING APPLICATIONS DECLARATIVE GUIS

Gauthier Picard. MINES Saint-Étienne. October 10, 2017

10.1 Introduction. Higher Level Processing. Word Recogniton Model. Text Output. Voice Signals. Spoken Words. Syntax, Semantics, Pragmatics

Mobila applikationer och trådlösa nät, HI1033, HT2012

External Services. CSE 5236: Mobile Application Development Course Coordinator: Dr. Rajiv Ramnath Instructor: Adam C. Champion

AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI FARG ONA FILIALI

Android JSON Parsing Tutorial

M.A.D Assignment # 1

API Guide for Gesture Recognition Engine. Version 2.0

Mobile Programming Lecture 5. Composite Views, Activities, Intents and Filters

MyDatabaseHelper. public static final String TABLE_NAME = "tbl_bio";

Android Apps Development for Mobile Game Lesson 5

Learn about Android Content Providers and SQLite

INTRODUCTION TO ANDROID

Managing Data. However, we'll be looking at two other forms of persistence today: (shared) preferences, and databases.

Basic UI elements: Android Buttons (Basics) Marco Ronchetti Università degli Studi di Trento

Transcription:

O ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARNI RIVOJLANTIRISH VAZIRLIGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI URGANCH FILIALI Kompyuter injiniringi fakulteti Dasturiy injiniring kafedrasi ХO JAYEV O., QURYAZOV D. Yo nalish: «Mobil ilovalarni ishlab chiqish» fanidan tajriba ishlarini bajarish bo yicha USLUBIY KO RSATMA 5330500 Kompyuter injiniringi (Kompyuter injiniringi) 5330600 Dasturiy injiniring III Kurs V Semestr Urganch 2016

Xo jayev O., Quryazov D. Mobil ilovalarni ishlab chiqish fanidan tajriba ishlarini bajarish bo yicha uslubiy ko rsatma. Urganch, TATU Urganch filiali, 2016. 56 b. Mobil ilovalarni ishlab chiqish fanidan tajriba ishlarini bajarish bo yicha uslubiy ko rsatma, bakalavriatura bosqichining, 5330500 Kompyuter injiniringi (Kompyuter injiniringi), 5330600 Dasturiy injiniring, yo nalishini 3 bosqich talabalari uchun mo ljallangan. Talabalar, ushbu uslubiy ko rsatmani o qish davomida V semestrda o qitiladigan, Ma lumotlarni intellektual taxlili fanidan tajriba mashg ulotlarini o tkazish ko nikmasiga ega bo ladilar. Taqrizchilar: TATU Urganch filiali, Axborot ta lim texnologiyalari kafedrasi dotsenti A.Ashirova TTA Urganch filiali, Normal fiziologiya, biofizika va informatika kafedrasi mudiri t.f.n. Raximov B.S..

Mundarija 1. Lobarotoriya mashg`uloti 1 Android uchun dasturchi ishchi muhitini sozlash 2. Lobarotoriya mashg`uloti 2 Androidda Layoutlar bilan ishlash 3. Lobarotoriya mashg`uloti 3 Activitylar orasidagi munosabat 4. Lobarotoriya mashg`uloti 4 Ro yhatlar bilan ishlash. Nostandart ro yhatlar(listview) 5. Lobarotoriya mashg`uloti 5 Ma lumotlarni qurilmada saqlash. Ichki va tashqi xotiradan foydalanish 6. Lobarotoriya mashg`uloti 6 SQLite MBBT bilan ishlash 7. Lobarotoriya mashg`uloti 7 JSON ga asoslangan Web xizmatlar bilan integratsiya 8. Lobarotoriya mashg`uloti 8 Geografik joylashuv o rnini aniqlash. Google maps bilan integratsiya. Lobarotoriya mashg`uloti 1 Mavzu: Android uchun dasturchi ishchi muhitini sozlash.

Maqsadlar: Mobil qurilmalar uchun dasturiy ta'minot tizimlarini rivojlantirish va tashkil etish, android muhitida dasturiy ta'minot ishlab chiqish uchun zarur bo'lgan vositalar majmuyini o'rganish. Nazariy qism: Android nima?: Android Linux operatsion tizimi yadrosi asosida ishlab chiqilgan bo`lib, ochiq kodli tizim hisoblanadi. Android operation tizimi Google kompaniyasining mahsuloti hisoblanadi. Android ning birinchi platformasi 2007 yil (beta versiya) Google komponiyasi tamonidan ishlab chiqilgan Android 1.0 versiyasi hisoblanadi. Android operatsion tizimini biz quyidagi holatlarda muhim ro`l o`ynashini kuzatishimiz mumkin : Android ning yaratilish bosqichlari : 1-qadam - Setup Java Development Kit (JDK) Siz oldin Java JDK ni shaxsiy kompyuteringizga yuklab olishingiz kerak bo`ladi, o`zgarishini holatini saqlab olishingiz kerak bo`ladi. O`zgaruvchilar muhitida JAVA_HOME qilib yangi holatni ochib, C:\jdk1.7.0_15\bin manzil kiritiladi. So`ng cmd ga javac buyrug`ini berib tekshirib olamiz.

set PATH=C:\jdk1.7.0_15\bin; %PATH% set JAVA_HOME=C:\jdk1.7.0_15 Java Development Kit ni o`rnatib olganimizdan so`ng keying bosqichga o`tamiz. 2-qadam - Android SDK ni o`rnatish. Bu bosqichda siz android sdk ni yuklab olishingiz kerak bo`ladi. Software Development Kit ni oxirgi versiyasini yuklab olganingizdan so`ng shaxsiy kompyuteringizga o`rnatishingiz lozim bo`ladi va u quyidagicha ekran ochib beradi : Android SDK ni paketlarini o`rnatishni boshlashingiz mumkin, kamida Windows muhitida bo`lsangiz 7 paketdan kam bo`lmagan platformalarni o`rnatib olishni tavsiya qilamiz. 3-qadam - Android Studio ni o`rnatish. Android Studio ochiq kodli tizim android uchun dasturiy ta`minotlarni yaratishni imkonini yaratib beruvchi komplyator hisoblaadi. Android Studio dasturi IntelliJ IDEA asosi ostida qurilgan. android-studio-bundle-141.17407740-windows.exe. ushbu dasturiy ta`minotni yuklab olib android studio ni ishga tushirishingiz mumkin. O`rnatish jarayoni :

JDK ni o`rnatilgan joyini ko`rsatib yuborishingiz kerak bo`ladi : Keyingi bosqichda Android Studio ni komponentalarini o`rnatib olishingiz mumkin, Android SDK, Virtual mashina, Intel protsessori uchun komponentalar. Android Studioni qayerga o`rnatish lozim deb bilsangiz shu yerni ko`rsatib yuborishingiz, shuningdek SDK ni yo`lini ham ko`rsatib o`tishingiz kerak bo`ladi.

Kopyuteringizni operativ xotirasidan qancha miqdorda joy ajratishingizni belgilashingiz kerak. Bosqichlarni bajarib bo`lganingizdan so`ng Android Studioni ishga tushirishingiz mumkin. Bu oyna orqali siz Android Studioda o`zingizni birinchi dasturingizni yaratib olishingiz, proyektni import qilishingiz va boshqa holatlarda dasturiy ta`minotlar bilan ishlay olish imkiniyatini yaratib beradi. Loyiha yaratish bosqichma bosqich amalga oshiralaveradi :

1) 2) 3) Yuqoridagi bosqichlardan so`ng sizga quyidagicha yangi darcha ochib beradi va bu sizning birinchi yaratgan android ichshi muhitida ishlovchi dasturingizni jo`rinishidir:

Siz bu dasturiy ta`minotni ishga tushirishingiz uchun Android Virtual Manager ni ishga tushirishingiz kerak bo`ladi: Emulatorni ishga tushirib bo`lib dasturingizga Run (Ishga tushirishingiz) mumkin. Vazifalar : Har bir talaba variyantda keltirilgan misollarni grfik interfaceni ishlashtishi kerak. Variyantlar : 1.Talabalarni registratsiya qilish formasini yaratish 2.Sport chempianatlarini ro`yhatini ko`rishni tuzish 3. Talabalar ma`lumotlar bazasini yaratish 4.Talabalarni bazada saqlashni boshqarish 5.Ixtiyoriy bir tashkilotni invertirlashni ko`rsatish 6. Sotilmagan biletlarni ro`yhatini shakllantirish 7. On-line lug`atni shkllantirish 8. Avtotest dasturini.xml ni yaratish 9. Mehmonhonalarda registratsiya qilishni ko`rinishini chizish 10 Shifoxonalarda registratsiya qilishni ko`rinishini chizish

11 Bemorlarni tarixini chiqarishni dizaynini yaratsih 12. On-line mobile messanger 13 Biror bir fan to`g`risinda ma`lumot beruvchi ko`rinishni yartish 14. Avtomob stansiyalarini ro`yhatga oluvchi ko`rinish 15 Xizmatchilarni ro`yhatga olish 16. To`lovlarni to`lashni boshqarishni ko`rinishini yasash 17.Tu`gilgan kunlarni ro`yhatga olish dasturini ko`rinishini yasash 18 Internet magazinni ko`rinishi 19 Komponiya ogohlantirishlari haqida ma`lumot beruvchi ko`rinish 20 E-mail klient dasturini ko`rinishi Mavzu: Androidda Layoutlar bilan ishlash. Lobarotoriya mashg`uloti 2 Ishdan maqsad: Androidda layoutlar bilan ishlashni, grafik va foydalanuvchi interfacelar bilan ishlashni o`rganish. Nazariy qism : Android - UI Layout Layoutlar bilan ishlagan vaqtda androidning maxsus komponentalari bilan ishlashga to`g`ri keladi. Bu komponentalar user interfaceni visualniy ko`rinishda yasashga imkoniyatlar yaratib beradi.

Tashqi ko`rinish: Androidda layoutlar bir necha xil bo`lishi mumkin. Quyidagi misolda siz LinearLayoutga xususiy holat uchun keltrilgan misolda ko`rishingiz mumkin. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="this is a TextView" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="this is a Button" /> <!-- More GUI components go here --> </LinearLayout> Har bir xml ko`rinishning o`ziga bo`glangan java fayli mavjud bo`ladi va u quyidagi metod yordamida bog`lanadi: public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate);

setcontentview(r.layout.activity_main); Layout ko`rinishlar haqida qisqacha ma`lumot: Layout & Ma`lumot 1 Linear Layout Orientatsiyasi belgilash orqali linearlayout ichiga kiritilgan atributlarni belgilash imkonini yaratadi. 2 Relative Layout RelativeLayout komponentalarni har xil positsiyada joylashtirish mumkin 3 Table Layout TableLayout jdaval ko`rinishda joylashtirish mumkin. 4 Absolute Layout

AbsoluteLayout bu aniq joyini x va y o`qlarida belgilab olish mumkin. 5 List View ListView itemlarida satrlar bilan ishlash imkonini yaratib beradi 6 Grid View GridView ViewGroup guruhiga kirib satr va ustunlarda har xil ob`yektlar bilan ishlash imkoniyatini yaratib beradi.

Layout atributlari : Atributlar obyektlarni xususiyatlarini belgilashda kerak bo`ladi. Shunday atbutalar mavjudki, hamma obyektlarga ham to`g`ri keladi, ayrimlari esa faqat o`ziga tegishli bo`ladi. Layoutlar attributalariga misollar Atributlar Qisqacha ma`lumot android:id Obyektni identefikatsion nomini belgilash android:layout_width Obyektni enini belgilash android:layout_height Obyektni bo`yini belgilash android:layout_margintop Obyektni positsiyasini yuqoridan pastga qarab surish android:layout_marginbottom Obyektni positsiyasini pastidan yuqoriga qarab surish android:layout_marginleft Obyektni positsiyasini chapdan o`nga qarab surish android:layout_marginright Obyektni positsiyasini o`ngdan chapga qarab surish

android:layout_gravity Joylashuv o`rnini belgilash android:layout_weight Obyekt vazni, ya`ni eni va bo`yicha ajdod layoutdan olgan xususiyati android:layout_x Layout da x koordinatasi bo`yicha belgilash android:layout_y Layout da y koordinatasi bo`yicha belgilash android:paddingleft Obyektlarni chapga o`zidan itarish android:paddingright Obyektlarni o`nga o`zidan itarish android:paddingtop Obyektlarni yuqoriga o`zidan itarish android:paddingbottom Obyektlarni pastga o`zidan itarish Vazifalar : Har bir talaba Android muhitida o`zining shaxsiy dasturiy ta`minotini ishga tushirishirishi lozim. Xml ko`rinishini tuzishlari kerak. Variyantlar : 1.Talabalarni registratsiya qilish formasini yaratish 2.Sport chempianatlarini ro`yhatini ko`rishni tuzish 3. Talabalar ma`lumotlar bazasini yaratish 4.Talabalarni bazada saqlashni boshqarish 5.Ixtiyoriy bir tashkilotni invertirlashni ko`rsatish 6. Sotilmagan biletlarni ro`yhatini shakllantirish 7. On-line lug`atni shkllantirish 8. Avtotest dasturini.xml ni yaratish 9. Mehmonhonalarda registratsiya qilishni ko`rinishini chizish 10 Shifoxonalarda registratsiya qilishni ko`rinishini chizish 11 Bemorlarni tarixini chiqarishni dizaynini yaratsih 12. On-line mobile messanger 13 Biror bir fan to`g`risinda ma`lumot beruvchi ko`rinishni yartish

14. Avtomob stansiyalarini ro`yhatga oluvchi ko`rinish 15 Xizmatchilarni ro`yhatga olish 16. To`lovlarni to`lashni boshqarishni ko`rinishini yasash 17.Tu`gilgan kunlarni ro`yhatga olish dasturini ko`rinishini yasash 18 Internet magazinni ko`rinishi 19 Komponiya ogohlantirishlari haqida ma`lumot beruvchi ko`rinish 20. mail klient dasturini ko`rinishi Mavzu: Activitylar orasidagi munosabat. Lobarotoriya mashg`uloti 3 Ishdan maqsad: Androidda activitylar bilan munosabatni o`rganish, ular orasidagi bog`lanishlarni ko`rib chiqish. Nazariy qism: Activtylar. Har qanday mobile dasturiy ta`minotlar activitylar va unga biriktirilgan Java fayllar bilan ishlanadi. Activitylar deganda biz user interfaceni tushunishimiz mumkin, ya`ni ularda joylashgan har xil turdagi komponenetalarni bir-birlari bilan bog`liqliligini umumiy holatda biror bir list shaklida ko`rish degani. Odatda dasturiy ta`minotlarimiz bir nechta activity.xml fayllarni birlashmasidan tashkil topgan bo`ladi. Activitylar bilan ishlaganimizda har safar qilgan harakatimizni xotirasida saqlab qoladi va oxirgi qilgan harakatimizni birinchi navbatda saqlab qoladi. Agar siz orqaga qaytsangiz oxirgiz bajargan amallaringizga qaytadi. Activity yaratish: Loyiha yaratgan vaqtimizda bizga xususiy holda activity_main.xml faylini yaratib beradi. MainActivity.java faylida esa bir nechta metodi yordamida interface fayliga birlashtirilib qo`yiladi va ular quyidagilar:

Metodlar oncreate() Qisqacha ma`lumot Bu metodda siz activitylarni o`rtasidaga harakatni boshqarishingiz mumkin masalan bir-birlari bilan bog`lash.java faylni activity_main.xml fayli bilan bog`lashda asosan qo`llaniladi. Harakatni to`xtatish Yo`q Keyin onstart() onrestart() Agar harakat to`xtatib qo`yilgan bo`lsa qaytadan yuklab olish imkoniyatini yaratib beradi. Yo`q onstart() onstart() Qayta ishchi rejimiga tushirishda qo`llaniladi, agar to`xtatilgan bo`lsa Yo`q onresume() yoki onstop() onresume() Oldingi holatga qaytarish, to`xtatilgan bo`lsa, shu metoddan foydalaniladi Yo`q onpause() onpause() Biror bir harakatni to`xtatib qo`yish, uning biror bir amallar majmuyini vaqtinchalik stop berib qo`yishimiz mumkin.biz uning oxirgi faoliyatini shu joyidan qaytarmasak u onresume() metodi holatida saqlanib qolaveradi. Ha onresume() yoki onstop() onstop() Bu metod onresume() metodidan farqli jihati oxirgi bajarilingan harakatni butunlay to`xtaib qo`yadi. Qayta ishga tushurmaguncha shu holat saqalanib qolaveradi. Ha onrestart() yoki ondestroy() Ushbu metodlar dasturimizni hayot skilini davomiyligini ta`minlash uchun keng qo`llaniladi va ular quyidagi holatlarda ishlatilinadi : public class ExampleActivity extends Activity { @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); @Override protected void onstart() { super.onstart();

@Override protected void onresume() { super.onresume(); @Override protected void onpause() { super.onpause(); @Override protected void onstop() { super.onstop(); @Override protected void ondestroy() { super.ondestroy(); Realizatsiya qilish: User interfacelar ierarik ko`rinishda shakllandi. XML ko`rinishlarni yasash uchun visual tarzda obyektlarni listga qo`yigan holatda joylashtirishingiz mumkin. Bu obyektlar bo`lishi mumkin: Button, EditText, TextView, CheckBox, ListView va h.k. Bu obyektlar ViewGroup tizimi deb ham ataladi. Activitylardagi komponenetalar grafik yoki kodli ko`rinishlarda tasvirlanadi. Java qismida esa Obyektlarni shu activity uchun faollashtib qo`yiladi. AndroidManifest da ushbu activity_main.xml va unga birlashtilgan java fayllarni faollashtib qo`yish lozim bo`ladi. <application> element. For example: <manifest... > <application... > <activity android:name=".exampleactivity" />

... </application... >... </manifest > Siz bu AndroidManifest qismida android dasturingizni ko`pgina paramertlarini kiritshingiz, tizimga ta`siri haqda tanishtirish imkoniyati mavjuddir. Masalan: Siz ushbu misolda ikki activity orasidagi munosabatni ko`rishingiz mumkin: Birinchi activityning java fayli - "GetMessageActivity.java", ikkinchisiniki esa DisplayMessageActivity.class deb nomlansin. package...; import...; import android.widget.toast; public class GetMessageActivity... { public final static String EXTRA_MESSAGE = "com.example.testintent.message"; private int requestcode = 1; @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_get_message); public void sendmessage(view view) { // Retrieve the message entered EditText txtmessage = (EditText) findviewbyid(r.id.txtmessageid); String message = txtmessage.gettext().tostring(); Intent intent = new Intent(this, DisplayMessageActivity.class); intent.putextra(extra_message, message); startactivityforresult(intent, requestcode); public void onactivityresult(int resultrequestcode, int resultcode, Intent result) { if (resultrequestcode == requestcode) { if (resultcode == RESULT_OK) { Toast.makeText(this, result.getdata().tostring(), Toast.LENGTH_LONG).show();......

display_message_activity.xml ning ko`rinishi quyidagicha: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/txtdisplayid" android:layout_width="match_parent" android:layout_height="wrap_content" /> <EditText android:id="@+id/txtreturnedid" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/txtdisplayid" android:hint="@string/message" /> <Button android:id="@+id/btnreturn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/txtreturnedid" android:layout_alignparentright="true" android:text="@string/btnreturnlabel" android:onclick="returnmessage" /> </RelativeLayout> Bu misolda ikki activity ga edittext obyekti yordamida matn yuborishni ko`rib chiqamiz: OnClick() metodi yodamida Button da returnmessage() ni qaytaramiz. res\values\string.xml katalogida joylashgan string.xml fayliga <string name="btnreturnlabel">return</string> ni kiritamiz. Endi DisplayMessageActivity.java faylini yaratib quyidagicha yozib chiqamiz: package...;

import android.net.uri; importandroid.view.view; importandroid.widget.edittext; public class DisplayMessageActivity... { @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_display_message); Intent intent = getintent(); String message = intent.getstringextra(getmessageactivity.extra_message); TextView txtdisplay = (TextView) findviewbyid(r.id.txtdisplayid); txtdisplay.settext(message); public void returnmessage(view view) { Intent result = new Intent(); EditText txtreturn = (EditText) findviewbyid(r.id.txtreturnedid); String returnmessage = txtreturn.gettext().tostring(); result.setdata(uri.parse(returnmessage)); setresult(result_ok, result); finish();...... Va biz quyidagi natijaga erishishamiz: Vazifa: Ushbu laboratoriya mashg`ulotida har bir talaba o`ziga berkitilgan topshiriqni activitylar orasidagi munosabatlarni qatnashtirib ishlashi lozim. Variyantlar : 1.Talabalarni registratsiya qilish formasini yaratish 2.Sport chempianatlarini ro`yhatini ko`rishni tuzish 3. Talabalar ma`lumotlar bazasini yaratish 4.Talabalarni bazada saqlashni boshqarish ->

5.Ixtiyoriy bir tashkilotni invertirlashni ko`rsatish 6. Sotilmagan biletlarni ro`yhatini shakllantirish 7. On-line lug`atni shkllantirish 8. Avtotest dasturini.xml ni yaratish 9. Mehmonhonalarda registratsiya qilishni ko`rinishini chizish 10 Shifoxonalarda registratsiya qilishni ko`rinishini chizish 11 Bemorlarni tarixini chiqarishni dizaynini yaratsih 12. On-line mobile messanger 13 Biror bir fan to`g`risinda ma`lumot beruvchi ko`rinishni yartish 14. Avtomob stansiyalarini ro`yhatga oluvchi ko`rinish 15 Xizmatchilarni ro`yhatga olish 16. To`lovlarni to`lashni boshqarishni ko`rinishini yasash 17.Tu`gilgan kunlarni ro`yhatga olish dasturini ko`rinishini yasash 18 Internet magazinni ko`rinishi 19 Komponiya ogohlantirishlari haqida ma`lumot beruvchi ko`rinish 20 E-mail klient dasturini ko`rinishi Lobarotoriya mashg`uloti 4 Mavzu: Ro yhatlar bilan ishlash. Nostandart ro yhatlar(listview). Ishdan maqsad: ListView larni ishlatishlarni o`rnatish o`rganish. Ro`yhatlar bilan ishlashni o`rganish. Nazariy qism: ListView lar ni ushbu laboratoriyada ikki xil turini ko`rib chiqamiz: Standart listviewlar va Nostandrat listviewlar. ListViewga misol keltiramiz Eng sodda listviewlar ArrayAdapter yordamida massivga olinadi. ArrayAdapterning itemlariga yuklanadigan textlarni shu massivga olib qo`yish mumkin.activity_main.xml faylida listview ga id="@+id/months_list" idni beramiz. setadapter () metodi yordamida ArrayAdapter() gi matnlarni joylashtiramiz. Xml faylning ko`rinishi: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"

android:layout_height="match_parent" android:orientation="vertical"> <ListView </ListView> </LinearLayout> android:id="@+id/months_list" android:layout_width="match_parent" android:layout_height="wrap_content" > Shunga mos MainActivity.java fayl ham quyidagicha : import android.os.bundle; import android.app.activity; import android.widget.arrayadapter; import android.widget.listview; public class ListActivity extends Activity { private String[] monthsarray = { "JAN", "FEB", "MAR", "APR", "MAY", "JUNE", "JULY", "AUG", "SEPT", "OCT", "NOV", "DEC" ; private ListView monthslistview; private ArrayAdapter arrayadapter; @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_list); monthslistview = (ListView) findviewbyid(r.id.months_list); arrayadapter = new ArrayAdapter(this, android.r.layout.simple_list_item_1, monthsarray); monthslistview.setadapter(arrayadapter); va quyidagi natijaga erishamiz :

2.Custom Adapter bilan ishlash: Ushbu adapter oldin ko`rib chiqqan ListView dan farqli jihati ImageView va Textview larni birlashtirgan holatlarda bitta itemda chiqarishimiz mumkin. Masalan: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="wrap_content" android:divider="#b5b5b5" android:dividerheight="1dp" android:listselector="@drawable/list_selector"> </ListView> </LinearLayout> SampleActivity ni yaratib getview() metodini ishlatamiz, ya`ni: package vatsag.samples.weatherdisplay; import vatsag.samples.weatherdisplay.r;

import android.media.mediaplayer; import android.os.bundle; import android.app.activity; import android.content.intent; import android.graphics.drawable.drawable; import android.util.log; import android.view.menu; import android.view.view; import android.widget.button; import android.widget.imagebutton; import android.widget.imageview; import android.widget.textview; import android.widget.toast; public class SampleActivity extends Activity { String position = "1"; String city = ""; String weather = ""; String temperature = ""; String windspeed = ""; String iconfile = ""; ImageButton imgweathericon; TextView tvcity; TextView tvtemp; TextView tvwindspeed; TextView tvcondition; @Override

public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.detailpage); try { imgweathericon = (ImageButton) findviewbyid(r.id.imagebuttonalpha); tvcity = (TextView) findviewbyid(r.id.textviewcity); tvtemp = (TextView) findviewbyid(r.id.textviewtemperature); tvwindspeed = (TextView) findviewbyid(r.id.textviewwindspeed); tvcondition = (TextView) findviewbyid(r.id.textviewcondition); Intent i = getintent(); this.position = i.getstringextra("position"); this.city = i.getstringextra("city"); this.weather= i.getstringextra("weather"); this.temperature = i.getstringextra("temperature"); this.windspeed = i.getstringextra("windspeed"); this.iconfile = i.getstringextra("icon"); String uri = "drawable/"+ "d" + iconfile; int imagebtnresource = getresources().getidentifier(uri, null, getpackagename()); Drawable dimgbutton = getresources().getdrawable(imagebtnresource); tvcity.settext(city); tvtemp.settext(temperature); tvwindspeed.settext(windspeed); tvcondition.settext(weather); imgweathericon.setimagedrawable(dimgbutton); catch (Exception ex) { Log.e("Error", "Loading exception");

@Override public boolean oncreateoptionsmenu(menu menu) { getmenuinflater().inflate(r.menu.main, menu); return true; Vazifalar: Ushbu lobaratoriya mashg`ulotida har bir talaba listview komponentasini ishlatib o`tishi kerak bo`ladi va ular ustida yaratish, o`zgartirish, o`chirish va o`qish kabi amallarni bajarib o`tishi kerak. Variyantlar : 1.Talabalarni registratsiya qilish formasini yaratish 2.Sport chempianatlarini ro`yhatini ko`rishni tuzish 3. Talabalar ma`lumotlar bazasini yaratish 4.Talabalarni bazada saqlashni boshqarish 5.Ixtiyoriy bir tashkilotni invertirlashni ko`rsatish 6. Sotilmagan biletlarni ro`yhatini shakllantirish

7. On-line lug`atni shkllantirish 8. Avtotest dasturini.xml ni yaratish 9. Mehmonhonalarda registratsiya qilishni ko`rinishini chizish 10 Shifoxonalarda registratsiya qilishni ko`rinishini chizish 11 Bemorlarni tarixini chiqarishni dizaynini yaratsih 12. On-line mobile messanger 13 Biror bir fan to`g`risinda ma`lumot beruvchi ko`rinishni yartish 14. Avtomob stansiyalarini ro`yhatga oluvchi ko`rinish 15 Xizmatchilarni ro`yhatga olish 16. To`lovlarni to`lashni boshqarishni ko`rinishini yasash 17.Tu`gilgan kunlarni ro`yhatga olish dasturini ko`rinishini yasash 18 Internet magazinni ko`rinishi 19 Komponiya ogohlantirishlari haqida ma`lumot beruvchi ko`rinish 20 E-mail klient dasturini ko`rinishi Lobarotoriya mashg`uloti 5 Mavzu: Ma lumotlarni qurilmada saqlash. Ichki va tashqi xotiradan foydalanish. Ishdan maqsad: Ma`lumotlarni xotirada saqlashni o`rganish.mobile dasturlarni ichki va tashqi xotiralarida ishlashini kuzatish. Nazariy qism: Android ma`lumotlaringizni saqlash uchun sizga bir nechta xotira turlarini yaratib beradi. Ular bo`lishi mumkin:

1. Shared Preferences Kalit so`zlar yordamida xotirada saqlash 2. Internal Storage Qurilma xotirasida saqlash 3. External Storage Umumiy ichki xotirada saqlash 4. SQLite Databases Ma`lumotlar bazasinda strukturalab saqlash Ichki xotira ma`lumotlarni qurilma xotirasiga yozish imkonini yaratib beradi. Xotiralar dastur o`rnatilinganda system fayllar qatoriga yozib qo`yiladi va u o`chirilib tashlanganda ham ma`lumotlar bazasi birga o`chib ketadi. FileOutputStream fout = openfileoutput("file name here",mode_world_readable); openfileoutput() metodi yordamida ma`lumotlarni xotiraga yozishimiz mumkin. Fayldan o`qib olish openfileinput() metodi yordamida amalga oshirishingiz mumkin: FileInputStream fin = openfileinput(file); int c; String temp=""; while( (c = fin.read())!= -1){ temp = temp + Character.toString((char)c); fin.close(); Masalan: Ushbu misolda siz xotiraga yozish va o`qib olishni mobile platformalar uchun ko`rib chiqasiz. Bosqichlari Qisqacha ma`lumot 1 Siz Android Studio da yangi project yaratishingiz kerak 2 MainActivity.java asosiy ko`rinishni java faylini belgilab o`tishingiz kerak. 3 res/layout/activity_main ni shu katolog bo`yicha kiritishingiz mumkin.

4 Natijani ko`rishingiz uchun RUN qilishingiz lozim. MainActivity.java fayli package com.example.sairamkrishna.myapplication; import android.app.activity; import android.os.bundle; import android.view.menu; import android.view.menuitem; import android.view.view; import android.widget.button; import android.widget.edittext; import android.widget.textview; import android.widget.toast; import java.io.fileinputstream; import java.io.fileoutputstream; public class MainActivity extends Activity { Button b1,b2; TextView tv; EditText ed1; String data; private String file = "mydata"; @Override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); b1=(button)findviewbyid(r.id.button); b2=(button)findviewbyid(r.id.button2); ed1=(edittext)findviewbyid(r.id.edittext); tv=(textview)findviewbyid(r.id.textview2); b1.setonclicklistener(new View.OnClickListener() {

@Override public void onclick(view v) { data=ed1.gettext().tostring(); try { FileOutputStream fout = openfileoutput(file,mode_world_readable); fout.write(data.getbytes()); fout.close(); Toast.makeText(getBaseContext(),"file saved",toast.length_short).show(); catch (Exception e) { // TODO Auto-generated catch block e.printstacktrace(); ); b2.setonclicklistener(new View.OnClickListener() { @Override public void onclick(view v) { try{ FileInputStream fin = openfileinput(file); int c; String temp=""; while( (c = fin.read())!= -1){ temp = temp + Character.toString((char)c); tv.settext(temp); Toast.makeText(getBaseContext(),"file read",toast.length_short).show(); catch(exception e){ );

@Override public boolean oncreateoptionsmenu(menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getmenuinflater().inflate(r.menu.menu_main, menu); return true; @Override public boolean onoptionsitemselected(menuitem item) { int id = item.getitemid(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; return super.onoptionsitemselected(item); res/layout/activity_main.xml fayli <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" android:paddingbottom="@dimen/activity_vertical_margin" tools:context=".mainactivity"> <TextView android:text="internal storage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textview" android:textsize="35dp" android:layout_alignparenttop="true" android:layout_centerhorizontal="true" /> <TextView android:layout_width="wrap_content"

android:layout_height="wrap_content" android:text="tutorials point" android:id="@+id/textview" android:layout_below="@+id/textview" android:layout_centerhorizontal="true" android:textcolor="#ff7aff24" android:textsize="35dp" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="save" android:id="@+id/button" android:layout_alignparentbottom="true" android:layout_alignleft="@+id/textview" android:layout_alignstart="@+id/textview" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/edittext" android:hint="enter Text" android:focusable="true" android:textcolorhighlight="#ff7eff15" android:textcolorhint="#ffff25e6" android:layout_below="@+id/imageview" android:layout_alignright="@+id/textview" android:layout_alignend="@+id/textview" android:layout_margintop="42dp" android:layout_alignleft="@+id/imageview" android:layout_alignstart="@+id/imageview" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageview" android:src="@drawable/abc"

android:layout_below="@+id/textview" android:layout_centerhorizontal="true" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="load" android:id="@+id/button2" android:layout_aligntop="@+id/button" android:layout_alignright="@+id/edittext" android:layout_alignend="@+id/edittext" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="read" android:id="@+id/textview2" android:layout_below="@+id/edittext" android:layout_toleftof="@+id/button2" android:layout_tostartof="@+id/button2" android:textcolor="#ff5bff1f" android:textsize="25dp" /> </RelativeLayout> res/values/string.xml fayli <resources> <string name="app_name">my Application</string> <string name="hello_world">hello world!</string> <string name="action_settings">settings</string> </resources> AndroidManifest.xml fayli <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.sairamkrishna.myapplication" > <application android:allowbackup="true"

android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/apptheme" > <activity android:name=".mainactivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> </application> </manifest> Run tugmasi bosganimizda bizga quyidagicha oyna ochib beradi : Files/mydate.txt fileda (LogCat.e da) saqlanadi, biz yaratgan loyihaning ma`lumtlari. Vazifa: Ushbu lobarotoriyada har bir talaba o`zining shaxsiy dasturida tashqi va ichki xotirani ishlatib, ma`lumotlarini saqlab qo`yishi kerak. Variyantlar : 1.Talabalarni registratsiya qilish formasini yaratish 2.Sport chempianatlarini ro`yhatini ko`rishni tuzish

3. Talabalar ma`lumotlar bazasini yaratish 4.Talabalarni bazada saqlashni boshqarish 5.Ixtiyoriy bir tashkilotni invertirlashni ko`rsatish 6. Sotilmagan biletlarni ro`yhatini shakllantirish 7. On-line lug`atni shkllantirish 8. Avtotest dasturini.xml ni yaratish 9. Mehmonhonalarda registratsiya qilishni ko`rinishini chizish 10 Shifoxonalarda registratsiya qilishni ko`rinishini chizish 11 Bemorlarni tarixini chiqarishni dizaynini yaratsih 12. On-line mobile messanger 13 Biror bir fan to`g`risinda ma`lumot beruvchi ko`rinishni yartish 14. Avtomob stansiyalarini ro`yhatga oluvchi ko`rinish 15 Xizmatchilarni ro`yhatga olish 16. To`lovlarni to`lashni boshqarishni ko`rinishini yasash 17.Tu`gilgan kunlarni ro`yhatga olish dasturini ko`rinishini yasash 18 Internet magazinni ko`rinishi 19 Komponiya ogohlantirishlari haqida ma`lumot beruvchi ko`rinish 20 E-mail klient dasturini ko`rinishi Lobarotoriya mashg`uloti 6 Mavzu: SQLite MBBT bilan ishlash. Ishdan maqsad: Ma`lumotlar bazasini ishlash prinspini o`rganishi, haqiqiy proyektlarda ma`lumotlar bazasini tutgan o`rni, grfik ko`rinishda ularni boshqarish va CRUD tizimini o`rganish. Nazariy qism: Android da SQLite Database da ishlash. CRUD tizimi. BIzlar oldingi lobarotoriya mashg`ulotida xotira turlari bilan tanishib chiqqan edik, masalan SharePreferences yoki ichki va tashqi xotiralarni. Android SDK da sqlite uchun maxsus

kutubxonalar mavjud bo`lib, android.database.sqlite package yordamida chaqirilib olinadi. Bizlar ushbu lobaratoriya masg`ulotimizda SQLite da CRUD tizimini o`rganib chiqamiz. Ma`lumotlar bazasini sqlite da yaratish: Bazadannix SQLiteOpenHelper metodi yordamida java fayliga import qlinib olinadi. public class PostDatabase extends SQLiteOpenHelper { private static final String TAG = "PostDatabase"; // Database Specific Details // If you change the database schema, you must increment the database version. private static final int DB_VERSION = 1; // DB Name, same is used to name the sqlite DB file private static final String DB_NAME = "test_db"; // `posts` table details public static final String TABLE_POSTS = "posts"; public static final String ID = "id"; public static final String COL_TITLE = "title"; public static final String COL_CONTENT = "content"; private static final String CREATE_TABLE_POSTS = "CREATE TABLE " + TABLE_POSTS + " (" + ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COL_TITLE + " TEXT NOT NULL, " + COL_CONTENT + " TEXT NOT NULL);"; public PostDatabase(Context context) { super(context, DB_NAME, null, DB_VERSION); @Override public void oncreate(sqlitedatabase db) { // Called when the database is created for the // first time. This is where the creation of // tables and the initial population of the tables should happen. db.execsql(create_table_posts); @Override

public void onupgrade(sqlitedatabase db, int oldversion, int newversion) { // Called when the database needs to be upgraded. // The implementation should use this method to // drop tables, add tables, or do anything else // it needs to upgrade to the new schema version. Log.w(TAG, "Upgrading database. Existing contents will be lost. [" + oldversion + "] -> [" + newversion + "]"); db.execsql("drop TABLE IF EXISTS " + TABLE_POSTS); // Create after dropping oncreate(db); Biz yaratgan sinfda PostDatabase ni tanishtirb o`tishimiz kerak. public final class DatabaseContract { public static abstract class Post implements BaseColumns { public static final String TABLE_NAME = "posts"; public static final String COL_TITLE = "title"; public static final String COL_CONTENT = "content"; SQLite da bazadan o`qish va yozish: getreadabledatabase() yoki getwritabledatabase() metodlari yordamida ma`lumotlar bazasiga murojat qilishimiz mumkin. PostDatabase DB = new PostDatabase(MainActivity.this); SQLiteDatabase sqldb = DB.getWritableDatabase(); // Execute queries... sqldb.close(); getwritabeldatabase() metodini SQLite boyektlari uchun qaytaradi. Bunda biz databasega o`qish va yozish imkoniyatini yaratadi. Database yaratamiz

ContentValues values = new ContentValues(); values.put(postdatabase.col_title, "Test Title"); values.put(postdatabase.col_content, "Test Content"); sqldb.insert(postdatabase.table_posts, null, values); insert() metodi yordamida ma`lumot kiritiladi. ContentValues values = new ContentValues(); values.put(postdatabase.col_title, "Test Title"); values.put(postdatabase.col_content, "Test Content"); sqldb.insert(postdatabase.table_posts, null, values); Cursor cursor = sqldb.rawquery("select * FROM posts WHERE id =?", new String[]{ "1" ); if (cursor!= null && cursor.movetofirst()) { String title = cursor.getstring(cursor.getcolumnindex(postdatabase.col_title)); String content = cursor.getstring(cursor.getcolumnindex(postdatabase.col_content)); Log.d(TAG, "Title: " + title + " Content: " + content); cursor.close(); values = new ContentValues(); values.put(postdatabase.col_title, "Second Title"); values.put(postdatabase.col_content, "Second Content"); sqldb.insert(postdatabase.table_posts, null, values); // public Cursor query (String table, String[] columns, String selection, String[] selectionargs, String groupby, String having, String orderby, String limit) cursor = sqldb.query(postdatabase.table_posts,, new String[] { PostDatabase.ID, PostDatabase.COL_TITLE, PostDatabase.COL_CONTENT null, null, null, null, null); if (cursor!= null) { int idindex = cursor.getcolumnindex(postdatabase.id); int titleindex = cursor.getcolumnindex(postdatabase.col_title); int contentindex = cursor.getcolumnindex(postdatabase.col_content); cursor.movetofirst(); while (!cursor.isafterlast()) {

int id = cursor.getint(idindex); String title = cursor.getstring(titleindex); String content = cursor.getstring(contentindex); // Dumps (2 rows): // ID: 1 Title: Test Title Content: Test Content // ID: 2 Title: Second Title Content: Second Content Log.d(TAG, "ID: " + id + " Title: " + title + " Content: " + content); cursor.movetonext(); Ma`lumotlarni o`zgartirish (UPDATE) Qaysi joyini o`zgartirmoqchi bo`lsak o`sh yerni tanlab olishimiz kerak: ContentValues values = new ContentValues(); values.put(postdatabase.col_title, "Second title changed"); // Which row to update, based on the ID String whereclause = PostDatabase.ID + " LIKE?"; String[] whereargs = { "2" ; int affectedrows = sqldb.update( // Dumps 1 ); PostDatabase.TABLE_POSTS, values, whereclause, whereargs Log.d(TAG, String.valueOf(affectedRows)); Ma`lumotlarni o`chirish (DELETE) Qaysi joyini o`chirmoqchi bo`lsak o`sh yerni tanlab olishimiz kerak: String whereclause = PostDatabase.ID + " =?"; // Specify arguments in placeholder order. String[] whereargs = { "1" ; // Issue SQL statement. sqldb.delete(postdatabase.table_posts, whereclause, whereargs);

SQLiteQueryBuilder SQLiteQueryBuilder querybuilder = new SQLiteQueryBuilder(); querybuilder.settables(postdatabase.table_posts); querybuilder.appendwhere("id = 1"); // Dumps "SELECT * FROM posts WHERE (id = 1)" Log.d(TAG, querybuilder.buildquery(null, null, null, null, null, null)); // querybuilder.query(db.getreadabledatabase(), projection, selection, selectionargs, null, null, sortorder) Here s how you could build a JOIN (between posts and comments table): querybuilder.settables( ); PostDatabase.TABLE_POSTS + " INNER JOIN " + PostDatabase.TABLE_COMMENTS + " ON " + PostDatabase.ID + " = " + (PostDatabase.TABLE_COMMENTS + "." + PostDatabase.COMMENT_POST_ID) // querybuilder.query(...) Vazifa: Ushbu lobaratoriya mashg`ulotida har bir talaba o`ziga berkitilgan topshiriqni ma`lumotlar bazasida ifodalashi kerak. Variyantlar : 1.Talabalarni registratsiya qilish formasini yaratish 2.Sport chempianatlarini ro`yhatini ko`rishni tuzish 3. Talabalar ma`lumotlar bazasini yaratish 4.Talabalarni bazada saqlashni boshqarish 5.Ixtiyoriy bir tashkilotni invertirlashni ko`rsatish 6. Sotilmagan biletlarni ro`yhatini shakllantirish 7. On-line lug`atni shkllantirish 8. Avtotest dasturini.xml ni yaratish 9. Mehmonhonalarda registratsiya qilishni ko`rinishini chizish 10 Shifoxonalarda registratsiya qilishni ko`rinishini chizish

11 Bemorlarni tarixini chiqarishni dizaynini yaratsih 12. On-line mobile messanger 13 Biror bir fan to`g`risinda ma`lumot beruvchi ko`rinishni yartish 14. Avtomob stansiyalarini ro`yhatga oluvchi ko`rinish 15 Xizmatchilarni ro`yhatga olish 16. To`lovlarni to`lashni boshqarishni ko`rinishini yasash 17.Tu`gilgan kunlarni ro`yhatga olish dasturini ko`rinishini yasash 18 Internet magazinni ko`rinishi 19 Komponiya ogohlantirishlari haqida ma`lumot beruvchi ko`rinish 20. mail klient dasturini ko`rinishi Lobarotoriya mashg`uloti 7 Mavzu: JSON ga asoslangan Web xizmatlar bilan integratsiya. Ishdan maqsad: JSON ga integratsiyalangan web xizmatlar. JSON ga integratsiyalangan web xiazmatlarni o`rganish, JSON orqali parse qilish, web texnologiyalari orqali JSON da bog`lanish Nazariy qism: JSON bu JavaScript Object Notation hozirgi kunda keng qo`llaniladigan formatlardan biri hisoblanadi. JSON orqali har il turdagi ma`lumotlarni o`qib olish mumkin. Quyidagi misolda JSON orqali ob-havoni bilishni ko`rib chiqamiz. { "sys": { "country":"gb",

"sunrise":1381107633, "sunset":1381149604, "weather":[ { "id":711, "main":"smoke", "description":"smoke", "icon":"50n" ], "main": { "temp":304.15, "pressure":1009, JSON - Elementlari JSONda ko`pgina komponenetalar orqali biror bir jadvaldan ma`lumotlarni oqib olish mumkin. Komponentalar & Qisqacha ma`lumotlar 1 Array([) JSON faylda, belgi orqali ([) yuklab olinadi. 2 Objects({) JSON faylda, belgi orqali ([) ma`lumotlar yuklab olinadi. 3 Key JSON kalit so`zlar orqali o`qib oladigan ma`lumotlarni ushlab oladi JSON Parse JSON da obyektlarni parse qilishimiz uchun json komponentalarini to`g`ri tanlay olishimiz kerak. String in; JSONObject reader = new JSONObject(in);

JSON obyektlari har xil kalit so`zlarga ega bo`lishi mumkin. JSONObject sys = reader.getjsonobject("sys"); country = sys.getstring("country"); JSONObject main = reader.getjsonobject("main"); temperature = main.getstring("temp"); getjsonobject metodi JSON obyektlarini qaytaradi. getstring esa maxsus kalit soz hisoblanadi. Masalan: Steps Description 1 Siz Android Studio da yangi project yaratishingiz kerak. 2 src/mainactivity.java fayli. 3 res/layout/activity_main fayli 4 res/values/string.xml satrli o`zgaruvchilar MainActivity.java package com.androidstudio.json; import android.app.activity; import android.os.strictmode; import android.support.v7.app.actionbaractivity; import android.os.bundle; import android.util.log; import android.view.menu; import android.view.menuitem; import android.widget.button; import android.widget.textview; import org.apache.http.httpentity; import org.apache.http.httpresponse; import org.apache.http.statusline; import org.apache.http.client.clientprotocolexception;

import org.apache.http.client.httpclient; import org.apache.http.client.methods.httpget; import org.apache.http.impl.client.defaulthttpclient; import org.json.jsonarray; import org.json.jsonexception; import org.json.jsonobject; import java.io.bufferedreader; import java.io.ioexception; import java.io.inputstream; import java.io.inputstreamreader; public class MainActivity extends Activity { public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); TextView output = (TextView) findviewbyid(r.id.textview1); String strjson=" { \"Employee\" :[ { \"id\":\"01\", \"name\":\"gopal Varma\", \"salary\":\"500000\", { \"id\":\"02\", \"name\":\"sairamkrishna\", \"salary\":\"500000\", { \"id\":\"03\", \"name\":\"sathish kallakuri\", \"salary\":\"600000\"

] "; String data = ""; try { JSONObject jsonrootobject = new JSONObject(strJson); //Get the instance of JSONArray that contains JSONObjects JSONArray jsonarray = jsonrootobject.optjsonarray("employee"); //Iterate the jsonarray and print the info of JSONObjects for(int i=0; i < jsonarray.length(); i++){ JSONObject jsonobject = jsonarray.getjsonobject(i); int id = Integer.parseInt(jsonObject.optString("id").toString()); String name = jsonobject.optstring("name").tostring(); float salary = Float.parseFloat(jsonObject.optString("salary").toString()); data += "Node"+i+" : \n id= "+ id +" \n Name= "+ name +" \n Salary= "+ salary +" \n "; output.settext(data); catch (JSONException e) {e.printstacktrace(); activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" android:paddingbottom="@dimen/activity_vertical_margin" tools:context=".mainactivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="json example" android:id="@+id/textview" android:layout_alignparenttop="true"

android:layout_centerhorizontal="true" android:textsize="30dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="tutorials Point" android:id="@+id/textview2" android:layout_below="@+id/textview" android:layout_centerhorizontal="true" android:textsize="35dp" android:textcolor="#ff16ff01" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="new Text" android:id="@+id/textview1" android:layout_below="@+id/textview2" android:layout_alignparentleft="true" android:layout_alignparentstart="true" android:layout_alignparentright="true" android:layout_alignparentend="true" /> </RelativeLayout> AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.sairamkrishna.myapplication" > <uses-permission android:name="android.permission.internet"/> <application android:allowbackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/apptheme" > <activity

android:name=".mainactivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> </application> </manifest> JSON komponentalari yordamida ma`lumotlarni o`qib olib, quyidagi oyna hosil bo`ldi. Vazifa: Ushbu loboratoriya mashg`ulotida JSON formatidan foydalanib obyektlarni parse qilishni o`rganishlari, o`zlarining loyihalarida qatnashtirishlari kerak. Variyantlar : 1.Talabalarni registratsiya qilish formasini yaratish 2.Sport chempianatlarini ro`yhatini ko`rishni tuzish 3. Talabalar ma`lumotlar bazasini yaratish 4.Talabalarni bazada saqlashni boshqarish 5.Ixtiyoriy bir tashkilotni invertirlashni ko`rsatish 6. Sotilmagan biletlarni ro`yhatini shakllantirish 7. On-line lug`atni shkllantirish 8. Avtotest dasturini.xml ni yaratish 9. Mehmonhonalarda registratsiya qilishni ko`rinishini chizish 10 Shifoxonalarda registratsiya qilishni ko`rinishini chizish 11 Bemorlarni tarixini chiqarishni dizaynini yaratsih

12. On-line mobile messanger 13 Biror bir fan to`g`risinda ma`lumot beruvchi ko`rinishni yartish 14. Avtomob stansiyalarini ro`yhatga oluvchi ko`rinish 15 Xizmatchilarni ro`yhatga olish 16. To`lovlarni to`lashni boshqarishni ko`rinishini yasash 17.Tu`gilgan kunlarni ro`yhatga olish dasturini ko`rinishini yasash 18 Internet magazinni ko`rinishi 19 Komponiya ogohlantirishlari haqida ma`lumot beruvchi ko`rinish 20 E-mail klient dasturini ko`rinishi Lobarotoriya mashg`uloti 8 Mavzu: Geografik joylashuv o rnini aniqlash. Google maps bilan integratsiya. Ishdan maqsad: Yangi texnologiyalarni o`rganish, zamonaviy Google Map texnologiyasida joylashuv o`rninini aniqlash. Nazariy qism: Joylashuv o`rningizni google map orqali aniqlashda uzunlik va kenglik koordinatalarini aniq bilib olish kerak. Masalan, siz o`zingiz qaysi manzilda ekanligingizni bilib olmoqchi bo`lsangiz, qaysi ko`chada yoki qaysi nuqtada ekanligingizni unda siz ushbu parametrlarni aniqiqlab olishingiz kerak bo`ladi. getfromlocation() metodi orqali siz grafik ko`rinishda joylashuv o`rningizni aniqlab olishingiz mumkin, Geocoder tizimi deb ham aytish mumkin. Bu tizimni ishlash prinspi kenglik va uzunlikni aniqlab joylashuv manzilni ko`rsatadi. GoogleMap googlemap; googlemap = ((MapFragment) getfragmentmanager().findfragmentbyid(r.id.map)).getmap(); Google Map activity_main.xml <fragment android:id="@+id/map" android:name="com.google.android.gms.maps.mapfragment" android:layout_width="match_parent" android:layout_height="match_parent" /> Google Map AndroidManifest.xml <!--Permissions--> <uses-permission android:name="android.permission.access_network_state" /> <uses-permission android:name="android.permission.internet" /> <uses-permission android:name="com.google.android.providers.gsf.permission.read_gservices" /> <uses-permission android:name="android.permission.write_external_storage" /> <!--Google MAP API key-->

<meta-data android:name="com.google.android.maps.v2.api_key" android:value="aizasydkymebxneifwy5jruejv6zitpmr2mvyq0" /> Google Mapni sozlash: Siz Google Map ni osongina sozlab olishingiz mumkin. addmarker() metodi orqali. final LatLng tuiturgench = new LatLng(21, 57); Marker TP = googlemap.addmarker(new MarkerOptions().position(tuiturgench).title("TATU Urganch filiali")); Siz shuningdek aniqlab olishi kerak deb bilgan karta turlarini ham o`zgartirishingiz mumkin. Hozirda to`rtta karta turi mavjud va ularning har biri har xil ko`rinigshda ko`rsatadi. googlemap.setmaptype(googlemap.map_type_normal); googlemap.setmaptype(googlemap.map_type_hybrid); googlemap.setmaptype(googlemap.map_type_satellite); googlemap.setmaptype(googlemap.map_type_terrain); setzoomcontrolsenabled() metodi orali masshtabni sozlashingiz mumkin: googlemap.getuisettings().setzoomgesturesenabled(true); Metodlar & qisqacha ma`lumot 1 addcircle() Ushbu metod kartada biror bir yuzani aniq ko`rsatib turadi 2 addpolygon() Ushbu metod kartada ko`pqirrali maydonni ko`rsatib turadi 3 addtileoverlay() Ushbu metod kartada plitkalarni ko`rsatib turadi 4 animatecamera() Ushbu metod kartada animatsiyali grafik ko`rinishlarini ko`rsatib turadi 5 clear() Ushbu metod kartada tozalash vazifasini bajaradi. 6 getmylocation() Ushbu metod hozirda siz qaysi kenglikda turganligingizni aniqlab beradi.

7 movecamera() Kameradagi o`zgarishlarni googlemap orqali qaytaradi 8 settrafficenabled() Ushbu metod trafiklarni sozlash imkoniyatini yaratdi 9 snapshot(googlemap.snapshotreadycallback callback) Ushbu metod kartada nusxa olish vazifasini bajaradi. 10 stopanimation() Ushbu metod animatsiyali jarayonlarni to`taib qo`yish vazifasini bajaradi. Masalan: Qisqacha ma`lumot 1 Sizning dasturingiz uchun googlemap ni integratsiyalab olishingiz kerak 2 Android Studio da yangi project yaratishingiz kerak bo`ladi, google Map API ni SDK Manager orqali yuklab olib yaratishingiz kerak. 3 MainActivity.java faylingiz 4 activity_main.xml grafik ko`rinishingiz 5 AndroidManifest.xml faylini sozlashingiz kerak. Google Play Service SDK ni yuklab olish: Kerakli kutubonalarni yuklab olishingiz kerak bo`ladi va u quyidagicha amalga oshiriladi:

API dan kalit olish: Bu jarayon ikki bosqich orqali amalga oshiriladi. Birinchi bosqich GoogleMap dan SHA1 kalitini olishingiz kerak. Bunda siz JRE ni ko`rsatib o`tishingiz kerak, ya`ni dasturiy ta`minotingiz orqali ma`lumot berishingiz kerak bo`ladi. Shunda sizga xaritani ishlatishingiz uchun API dan kalit olishingiz mimkin. keytool -list -v -alias androiddebugkey -keystore %%Your path%% -storepass android -keypass android Olgan kalitingizni % belgis turgan joyga joylashtirishingiz kerak. SHA1 kalitini nisxalab oling, Google ga kirib yangi loyiha yarating va API Google Maps v2 Android xizmatlarini yoqib qo`yishingiz kerak. Kalit sozni kiritib nuqta verguldan keyin dasturni nomini belgilashingiz kerak. AndroidManifest.xml ni sozlash: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.googlemaps" android:versioncode="1"

android:versionname="1.0" > <uses-permission android:name="com.example.googlemaps.permission.maps_receive" /> <uses-sdk android:minsdkversion="12" android:targetsdkversion="17" /> <permission android:name="com.example.googlemaps.permission.maps_receive" android:protectionlevel="signature" /> <uses-permission android:name="android.permission.access_network_state" /> <uses-permission android:name="android.permission.internet" /> <uses-permission android:name="com.google.android.providers. gsf.permission. READ_GSERVICES" /> <uses-permission android:name="android.permission. WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission. ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.access_fine_location" /> <uses-feature android:glesversion="0x00020000" android:required="true" /> <application android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/apptheme" > <activity android:name="com.example.googlemaps.mainactivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" />

</intent-filter> </activity> <meta-data android:name="com.google.android.maps.v2.api_key" android:value="aizasydkymebxneifwy5jruejv6zitpmr2mvyq0" /> </application> </manifest> MainActivity.java package com.example.googlemaps; import com.google.android.gms.maps.googlemap; import com.google.android.gms.maps.mapfragment; import com.google.android.gms.maps.model.latlng; import com.google.android.gms.maps.model.marker; import com.google.android.gms.maps.model.markeroptions; import android.os.bundle; import android.app.activity; import android.widget.toast; public class MainActivity extends Activity { static final LatLng TutorialsPoint = new LatLng(21, 57); private GoogleMap googlemap; @Override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); try { if (googlemap == null) { googlemap = ((MapFragment) getfragmentmanager(). findfragmentbyid(r.id.map)).getmap(); googlemap.setmaptype(googlemap.map_type_hybrid); Marker TP = googlemap.addmarker(new MarkerOptions(). position(tutorialspoint).title("tutorialspoint"));

catch (Exception e) { e.printstacktrace(); activity_main.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <fragment android:id="@+id/map" android:name="com.google.android.gms.maps.mapfragment" android:layout_width="match_parent" android:layout_height="match_parent"/> </RelativeLayout> va quyidagi natijaga erishamiz: Vazifa: Ushbu lobarotoriyada har bir talaba zamonaviy GoogleMap xizmatlarini yaxshi blishlari kerak.mobile dasturlarda ko`pgina funksiyalar ushbu tizim orqali amalga oshiriladi. Har kim o`ziga berkitilgan topshiriqlarda GoogleMap xizmatini ham ishlatib o`tishi kerak. Variyantlar : 1.Talabalarni registratsiya qilish formasini yaratish 2.Sport chempianatlarini ro`yhatini ko`rishni tuzish