Академический Документы
Профессиональный Документы
Культура Документы
Лабораторной работе № 2
по дисциплине «PAM»
Выполнила:
Проверил: Русу К.
Кишинев 2017
Scopul lucrării de laborator:
De realizat aplicație tip Organiser pe platforma aleasă.
La formarea și proiectarea aplicațiilor sunt introduse puncte stricte,
ce sunt obligatorii de respectat. La discreția personală rămâne designul aplicației
și API-ul/Framework-ul în care va fi dezvoltată lucrarea de laborator #2. Componentele
și structura fiecărei Activități va fi descrisă mai jos.
UI Components
Aplicația va conține minim 3 Activități de baza care vor fi numerotate în lucrare sub forma:
1. MainActivity (structura/componente)
2. AddtActivity
Data/Time controller
Info TextBox
Buttons
și altele (la discreție conform specificului aplicației)
Ход работы:
Для реализации задания я работала в двух activity: MainActivity (для основного окна, где
будут располагаться календарь, текст-бокс для ввода поиска, кнопка поиска события и
activity с именем AddActivity. Листинги обоих activity и xml-представление layout-ов я
приведу ниже.
Язык XML предназначен для хранения и передачи данных. HTML же предназначен для
отображения данных.
XML не является заменой HTML. Они предназначены для решения разных задач: XML
решает задачу хранения и транспортировки данных, фокусируясь на том, что такое эти
самые данные, HTML же решает задачу отображения данных, фокусируясь на том, как эти
данные выглядят. Таким образом, HTML заботится об отображении информации, а XML о
транспортировке информации.
Для работы с календарём мы воспользовались разработкой компактного календаря
https://github.com/SundeepK/CompactCalendarView, подключив её как зависимость для
нашего проекта.
Органайзер является средством управления временем. Предварительное планирование дел
помогает повысить плодотворность любой деятельности, как личной, так и
профессиональной. Поэтому и человека, который консультирует организации и частных
лиц в сфере повышения эффективности управления временем, тоже иногда называют
«органайзер»; в США существует Национальная ассоциация профессиональных
органайзеров (NAPO).
В XXI веке под органайзером чаще понимается программное
обеспечение для ПК и мобильных устройств.
Скриншоты работы программы
1. https://github.com/SundeepK/CompactCalendarView
2. http://developer.alexanderklimov.ru/android/theory/xmlparsers.php
3. http://msiter.ru/tutorials/uchebnik-xml-dlya-nachinayushchih/chto-takoe-xml
4. https://ru.wikipedia.org/wiki/XML
ПРИЛОЖЕНИЕ
Код программы
MainAcivity.java
package com.example.olgaa.pam_lab2;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.graphics.Color;
import android.os.Environment;
import android.support.v7.app.AlertDialog; import
android.support.v7.app.AppCompatActivity; import
android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import com.github.sundeepk.compactcalendarview.CompactCalendarView;
import com.github.sundeepk.compactcalendarview.domain.Event;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.xml.sax.SAXException;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerException;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource; import
javax.xml.transform.stream.StreamResult;
import butterknife.BindView;
import butterknife.ButterKnife;
@BindView(R.id.calendar_view)
CompactCalendarView calendar;
@BindView(R.id.etSearch)
EditText etSearch;
@BindView(R.id.btnSearch)
Button btnSearch;
@BindView(R.id.list)
ListView list;
@Override
protected void onCreate(Bundle
savedInstanceState)
{ super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
//………………………………………………………………………………………………………………….
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent
data) {
if (requestCode == 1) {
try {
update();
} catch (IOException | SAXException |
ParserConfigurationException e) {
e.printStackTrace();
}
}
}
}
AddActivity.java
package com.example.olgaa.pam_lab2;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View; import
android.widget.Button;
import android.widget.EditText;
import android.widget.NumberPicker;
import org.xml.sax.SAXException;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerException;
import butterknife.BindView;
import butterknife.ButterKnife;
@BindView(R.id.hours)
NumberPicker hours;
@BindView(R.id.minutes)
NumberPicker minutes;
@BindView(R.id.message)
EditText message;
@BindView(R.id.confirm)
Button confirm;
@Override
protected void onCreate(Bundle savedInstanceState)
{ super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add);
ButterKnife.bind(this);
hours.setMinValue(0);
hours.setMaxValue(23);
minutes.setMinValue(0);
minutes.setMaxValue(59);
if
//………………………………………………………………………………………………..
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Environment;
import android.support.annotation.NonNull;
import android.util.Xml;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.xml.sax.SAXException;
import org.xmlpull.v1.XmlSerializer;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.StringWriter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory; import
javax.xml.parsers.ParserConfigurationException; import
javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource; import
javax.xml.transform.stream.StreamResult;
@NonNull
private static File getUserData() throws IOException {
//………………………………………………………………………………………..
XML_File.java
package com.example.olgaa.pam_lab2;
import android.os.Environment;
import android.util.Xml;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import org.xmlpull.v1.XmlSerializer;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.StringWriter;
import java.util.ArrayList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory; import
javax.xml.parsers.ParserConfigurationException;
xmlSerializer.endTag(null, "eventData");
xmlSerializer.endDocument();
xmlSerializer.flush();
String dataWrite = writer.toString();
fileos.write(dataWrite.getBytes());
fileos.close();
}
//……………………………………………………………………………………………………
}
}
Alarm.java
package com.example.olgaa.pam_lab2;
import android.app.Notification;
import android.app.NotificationManager;
import android.content.BroadcastReceiver;
import android.content.Context; import
android.content.Intent;
import android.widget.Toast;
notificationManager.notify(0, n);
}
}