Розробка програми для операційної системи "Android"

Операційна система Android: поняття та загальна характеристика, оцінка переваг та недоліків, принципи програмування в ній. Основні типи елементів інтерфейсу, використання адаптерів. Розробка програми, головні файли, система взаємодії. Асинхронні запити.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 13.05.2014
Размер файла 1,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

dataToSend.put («institution», currId.getText().toString());

Retreiver task = new Retreiver();

task.execute («groups», requeslUrl);

}

@Override

public void onNothingSelected (AdapterView<?> arg0) {

}

});

}

private final boolean isOnline() {

ConnectivityManager cm =

(ConnectivityManager) getSystemService (Context.CONNECTIVITY_SERVICE);

NetworkInfo netInfo = cm.getActiveNetworkInfo();

if (netInfo!= null && netInfo.isConnectedOrConnecting() && netInfo.isAvailable()) {

return true;

}

return false;

}

private void getInts() throws JSONException {

dataToSend = new HashMap<String, String>();

dataToSend.put («mode», «getInst»);

Retreiver task = new Retreiver();

task.execute («ints», requeslUrl);

}

private void setInstAdapter (String[] names, String[] ids) {

formList (names, ids, 1);

spinInst.setAdapter (new SpinnerArrayAdapter (this, instAdapter));

}

private void setGroupAdapter (String[] names, String[] ids) {

formList (names, ids, 2);

spinGroup.setAdapter (new SpinnerArrayAdapter (this, groupAdapter));

}

private class Retreiver extends AsyncTask<String, Void, String> {

private String mode;

private String url;

@Override

protected String doInBackground (String… params) {

String response = «»;

mode = params[0];

url = params[1];

HttpParams httpParameters = new BasicHttpParams();

HttpProtocolParams.setContentCharset (httpParameters, HTTP.UTF_8);

HttpProtocolParams.setHttpElementCharset (httpParameters, HTTP.UTF_8);

DefaultHttpClient client = new DefaultHttpClient(httpParameters);

client.getParams().setParameter («http.protocol.content-charset», HTTP.UTF_8);

HttpPost httpPost = new HttpPost(url);

try {

httpPost.setEntity (StaticFunctions.setEntity(dataToSend));

HttpResponse execute = client.execute(httpPost);

InputStream content = execute.getEntity().getContent();

response = StaticFunctions.isToString(content);

} catch (Exception e) {

e.printStackTrace();

return response;

}

@Override

protected void onPostExecute (String result) {

try {

if (mode.equals («ints»)) {

dataList = StaticFunctions.parse (result, instArrName, instFields);

String [] institutions = new String [dataList.size() + 1];

String [] instIds = new String [dataList.size() + 1];

institutions[0] = defInstVal;

instIds[0] = «0»;

String nameField = «name»;

if (locale.equalsIgnoreCase («ru»)) {

nameField += «_ru»;

}

for (int i = 0; i < dataList.size(); i++) {

institutions [i+1] = dataList.get(i).get(nameField);

instIds [i+1] = dataList.get(i).get(idField);

}

setInstAdapter (institutions, instIds);

}

if (mode.equals («groups»)) {

dataList = StaticFunctions.parse (result, groupArrName, groupFields);

String [] groups = new String [dataList.size() + 1];

String [] groupIds = new String [dataList.size() + 1];

groups[0] = defGroupVal;

groupIds[0] = «0»;

String nameField = «name»;

if (locale.equalsIgnoreCase («ru»)) {

nameField += «_ru»;

}

for (int i = 0; i < dataList.size(); i++) {

groups [i+1] = dataList.get(i).get(nameField);

groupIds [i+1] = dataList.get(i).get(idField);

}

setGroupAdapter (groups, groupIds);

}

if (mode.equals («register»)) {

if (result.equals («success»)) {

regDialog();

}

if (result.equals («exists»)) {

showDialog(userExists);

}

}

} catch (JSONException e) {

e.printStackTrace();

}

}

}

private void showDialog (String error) {

SimpleAlert newFragment = SimpleAlert.newInstance(error);

newFragment.show (getFragmentManager(), «dialog»);

}

private void regDialog() {

RegDialog newFragment = RegDialog.newInstance (code_info);

newFragment.show (getFragmentManager(), «dialog»);

}

private static void ckeckCode (String code) {

dataToSend = new HashMap<String, String>();

dataToSend.put («mode», «check»);

dataToSend.put («code», code);

}

public static class RegDialog extends DialogFragment {

public static RegDialog newInstance (String title) {

RegDialog frag = new RegDialog();

Bundle args = new Bundle();

args.putString («title», title);

frag.setArguments(args);

return frag;

}

@Override

public void onCreate (Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

}

@Override

public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

getDialog().setTitle (getArguments().getString («title»));

View v = inflater.inflate (R.layout.custom_dialog, container, false);

Button button = (Button) v.findViewById (R.id.dialog_but);

final EditText cod = (EditText) v.findViewById (R.id.dialog_text);

button.setOnClickListener (new OnClickListener() {

public void onClick (View v) {

ckeckCode (cod.getText().toString());

CheckTask task = new CheckTask();

task.execute(requeslUrl);

}

});

return v;

}

private class CheckTask extends AsyncTask<String, Void, String> {

private String url;

@Override

protected String doInBackground (String… params) {

String response = «»;

url = params[0];

HttpParams httpParameters = new BasicHttpParams();

HttpProtocolParams.setContentCharset (httpParameters, HTTP.UTF_8);

HttpProtocolParams.setHttpElementCharset (httpParameters, HTTP.UTF_8);

DefaultHttpClient client = new DefaultHttpClient(httpParameters);

client.getParams().setParameter («http.protocol.content-charset», HTTP.UTF_8);

HttpPost httpPost = new HttpPost(url);

try {

httpPost.setEntity (StaticFunctions.setEntity(dataToSend));

HttpResponse execute = client.execute(httpPost);

InputStream content = execute.getEntity().getContent();

response = StaticFunctions.isToString(content);

} catch (Exception e) {

e.printStackTrace();

}

return response;

}

@Override

protected void onPostExecute (String result) {

if (result.equals («success»)) {

SimpleAlert newFragment = SimpleAlert.newInstance(okAct);

newFragment.show (getFragmentManager(), «dialog»);

} else {

SimpleAlert newFragment = SimpleAlert.newInstance(errAct);

newFragment.show (getFragmentManager(), «dialog»);

}

}

}

}

}

«SimpleAlert.java»

package com.tokmate;

import android.app. AlertDialog;

import android.app. Dialog;

import android.app. DialogFragment;

import android.content. DialogInterface;

import android.os. Bundle;

public class SimpleAlert extends DialogFragment {

public static SimpleAlert newInstance (String title) {

SimpleAlert frag = new SimpleAlert();

Bundle args = new Bundle();

args.putString («title», title);

frag.setArguments(args);

return frag;

}

@Override

public void onCreate (Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

}

@Override

public Dialog onCreateDialog (Bundle savedInstanceState) {

String title = getArguments().getString («title»);

return new AlertDialog. Builder (getActivity())

setTitle(title)

setPositiveButton («OK»,

new DialogInterface. OnClickListener() {

public void onClick (DialogInterface dialog, int whichButton) {

}

}

).create();

}

}

«SingleLetter.java»

package com.tokmate;

import java.io. InputStream;

import java.util. HashMap;

import java.util. Map;

import org.apache.http. HttpResponse;

import org.apache.http.client.methods. HttpPost;

import org.apache.http.impl.client. DefaultHttpClient;

import android.app. Activity;

import android.content. Context;

import android.content. Intent;

import android.net. ConnectivityManager;

import android.net. NetworkInfo;

import android.os. AsyncTask;

import android.os. Bundle;

import android.text. Html;

import android.widget. TextView;

public class SingleLetter extends Activity {

final String requeslUrl = «http://tokmate.com/get_data.php»;

TextView heading;

TextView from;

TextView body;

String idL;

Map<String, String> dataToSend;

@Override

public void onCreate (Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView (R.layout.single_letter);

heading = (TextView) findViewById (R.id.single_letter_header);

from = (TextView) findViewById (R.id.single_letter_from);

body = (TextView) findViewById (R.id.single_letter_body);

Intent in = getIntent();

String sb = in.getStringExtra («subj»);

String fr = in.getStringExtra («from»);

idL = in.getStringExtra («id»);

heading.setText(sb);

from.setText(fr);

if (isOnline()) {

postData();

}

}

private void setResponse (String str) {

body.setText (Html.fromHtml(str));

}

private void postData() {

dataToSend = new HashMap<String, String>();

dataToSend.put («mode», «getLetterById»);

dataToSend.put («letterId», idL);

SingleLetterRetreiver task = new SingleLetterRetreiver();

task.execute();

}

private class SingleLetterRetreiver extends AsyncTask<Void, Void, String> {

@Override

protected String doInBackground (Void… params) {

DefaultHttpClient client = new DefaultHttpClient();

HttpPost httpPost = new HttpPost(requeslUrl);

String result = null;

try {

httpPost.setEntity (StaticFunctions.setEntity(dataToSend));

HttpResponse execute = client.execute(httpPost);

InputStream content = execute.getEntity().getContent();

result = StaticFunctions.isToString(content);

} catch (Exception e) {

e.printStackTrace();

}

return result;

}

@Override

protected void onPostExecute (String result) {

setResponse(result);

}

}

private final boolean isOnline() {

ConnectivityManager cm =

(ConnectivityManager) getSystemService (Context.CONNECTIVITY_SERVICE);

NetworkInfo netInfo = cm.getActiveNetworkInfo();

if (netInfo!= null && netInfo.isConnectedOrConnecting() && netInfo.isAvailable()) {

return true;

}

return false;

}

}

«SpinnerArrayAdapter.java»

package com.tokmate;

import java.util. List;

import android.app. Activity;

import android.view. View;

import android.view. ViewGroup;

import android.widget. ArrayAdapter;

import android.widget. TextView;

import android.view. LayoutInflater;

public class SpinnerArrayAdapter extends ArrayAdapter<SpinnerItem> {

private final List<SpinnerItem> list;

private final Activity context;

public SpinnerArrayAdapter (Activity context, List<SpinnerItem> list) {

super (context, R.layout.spin_row, list);

this.context = context;

this.list = list;

}

static class ViewHolder {

public TextView idView;

public TextView nameView;

}

@Override

public View getDropDownView (int position, View convertView, ViewGroup parent) {

// TODO Auto-generated method stub

return getView (position, convertView, parent);

}

@Override

public View getView (int position, View convertView, ViewGroup parent) {

ViewHolder holder;

View rowView = convertView;

if (rowView == null) {

LayoutInflater inflater = context.getLayoutInflater();

rowView = inflater.inflate (R.layout.spin_row, null, true);

holder = new ViewHolder();

holder.idView = (TextView) rowView.findViewById (R.id.spinner_row_id);

holder.nameView = (TextView) rowView.findViewById (R.id.spinner_row_name);

rowView.setTag(holder);

} else {

holder = (ViewHolder) rowView.getTag();

}

holder.idView.setText (this.list.get(position).getId());

holder.nameView.setText (this.list.get(position).getName());

return rowView;

}

}

«Start.java»

package com.tokmate;

import android.net. ConnectivityManager;

import android.net. NetworkInfo;

import android.os. Bundle;

import android.app. Activity;

import android.content. Context;

import android.content. Intent;

import android.view. Menu;

import android.view. MenuItem;

import android.view. View;

import android.widget. Button;

import android.widget. TextView;

public class Start extends Activity {

Button reg;

Button login;

TextView netAlert;

String alertMsg;

View. OnClickListener regOnClickListener = new View. OnClickListener() {

@Override

public void onClick (View v) {

Intent regIntent = new Intent (v.getContext(), Register.class);

startActivity(regIntent);

}

};

View. OnClickListener loginOnClickListener = new View. OnClickListener() {

@Override

public void onClick (View v) {

Intent regIntent = new Intent (v.getContext(), Main.class);

startActivity(regIntent);

}

};

@Override

protected void onCreate (Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView (R.layout.activity_start);

setViewsandButtons();

connectionCkeck();

}

@Override

public boolean onCreateOptionsMenu (Menu menu) {

getMenuInflater().inflate (R.menu.start, menu);

menu.findItem (R.id.action_about).setIntent (new Intent (this, About.class));

return true;

}

@Override

public boolean onOptionsItemSelected (MenuItem item) {

super.onOptionsItemSelected(item);

startActivity (item.getIntent());

return true;

}

private final void connectionCkeck() {

alertMsg = getResources().getString (R.string.no_connection);

if (! isOnline()) {

netAlert.setText(alertMsg);

netAlert.setVisibility (View.VISIBLE);

}

}

private final void setViewsandButtons() {

reg = (Button) findViewById (R.id.button_register);

reg.setOnClickListener(regOnClickListener);

login = (Button) findViewById (R.id.button_login);

login.setOnClickListener(loginOnClickListener);

netAlert = (TextView) findViewById (R.id.login_alert_msg);

}

private final boolean isOnline() {

ConnectivityManager cm =

(ConnectivityManager) getSystemService (Context.CONNECTIVITY_SERVICE);

NetworkInfo netInfo = cm.getActiveNetworkInfo();

if (netInfo!= null && netInfo.isConnectedOrConnecting()

&& netInfo.isAvailable()) {

return true;

}

return false;

}

}

«Staticfunctions.java»

package com.tokmate;

import java.io. BufferedReader;

import java.io.IOException;

import java.io. InputStream;

import java.io. InputStreamReader;

import java.io. UnsupportedEncodingException;

import java.util. ArrayList;

import java.util. HashMap;

import java.util. Map;

import org.apache.http. NameValuePair;

import org.apache.http.client.entity. UrlEncodedFormEntity;

import org.apache.http.message. BasicNameValuePair;

import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

public class StaticFunctions {

public static ArrayList<HashMap<String, String>> parse (String str, String jsonArrName, String[] fields)

throws JSONException

{

JSONObject json = new JSONObject(str);

JSONArray jsonArr = json.getJSONArray(jsonArrName);

ArrayList<HashMap<String, String>> dataList = new ArrayList<HashMap<String, String>>();

for (int i = 0; i < jsonArr.length(); i++) {

JSONObject row = jsonArr.getJSONObject(i);

HashMap<String, String> map = new HashMap<String, String>();

for (int j = 0; j < fields.length; j++) {

map.put (fields[j], row.getString (fields[j]));

}

dataList.add(map);

}

return dataList;

}

public static UrlEncodedFormEntity setEntity (Map<String, String> dataToSend)

throws UnsupportedEncodingException

{

UrlEncodedFormEntity entity = null;

ArrayList<NameValuePair> parameters = new ArrayList<NameValuePair>();

for (Map. Entry<String, String> entry: dataToSend.entrySet()) {

parameters.add (new BasicNameValuePair (entry.getKey(), entry.getValue()));

}

entity = new UrlEncodedFormEntity(parameters);

return entity;

}

public static String isToString (InputStream is) throws IOException {

BufferedReader r = new BufferedReader (new InputStreamReader(is));

StringBuilder total = new StringBuilder();

String line;

while ((line = r.readLine())!= null) {

total.append(line);

}

return total.toString();

}

}

Размещено на Allbest.ru


Подобные документы

  • Значення операційної системи - програми, яка завантажується при включенні комп'ютера. Компоненти Windows, передача параметрів у мові С++. Системні ресурси та принципи їх роботи. Розробка алгоритму програми емуляції роботи командного процесора ОС.

    курсовая работа [37,5 K], добавлен 18.06.2010

  • Методи первинної обробки даних - згладжування та характеристика сплайнів. Загальна характеристика об'єктно-орієнтованої мови Java. Принципи побудови графічного інтерфейсу. Розробка алгоритму програми та інтерфейсу користувача програмного продукту.

    дипломная работа [3,3 M], добавлен 10.10.2013

  • Проектування інтерфейсу програми. Вимоги до продукту. Вхідні дані на розробку автоматизованої системи. Вибір середовища програмування. Розробка структури бази даних. Функціональна та логічна структура програми. Розробка структури таблиць бази даних.

    курсовая работа [43,1 K], добавлен 30.06.2015

  • Розробка інтерфейсу програми "Автоматизована інформаційна система автошколи". Вибір архітектури, характеристика користувача. Генерація, проектування схеми бази даних, детальне програмування. Розробка структури таблиць. Лістинг програми, результат роботи.

    курсовая работа [2,7 M], добавлен 11.09.2015

  • Головні принципи візуального програмування, опис компонентів Delphi, використаних при розробці проекту. Опис програми-додатку "Психологічний тест" та список дій користувача. Алгоритм роботи програми, її форма та ієрархія. Опис графічного інтерфейсу.

    курсовая работа [1,2 M], добавлен 08.06.2010

  • Аналіз особливостей мови програмування Java та середовища Android Studio. Розробка програмного забезпечення для якісного та ефективного вивчення іноземних слів. Побудова базових алгоритмів і структури даних. Вибір мови програмування, реалізація програми.

    курсовая работа [335,3 K], добавлен 11.01.2015

  • Об’єктно-орієнтоване програмування мовою С++. Основні принципи об’єктно-орієнтованого програмування. Розробка класів з використанням технології візуального програмування. Розробка класу classProgressBar. Базовий клас font. Методи тестування програми.

    курсовая работа [211,3 K], добавлен 19.08.2010

  • Основні розрахунки резисторів мікросхеми. Розробка алгоритму рішення задачі методом блок-схем. Характеристика та розробка програми на мові С++ з використанням принципів модульного і структурного програмування. План тестування і налагоджування програми.

    курсовая работа [2,9 M], добавлен 05.12.2012

  • Основні переваги програмування на мові Delphi. Використання стандартних операторів при створенні інтерфейсу користувача. Вибір складу технічних і програмних засобів, організація вхідних і вихідних даних. Розробка програми, блок-схеми та тексту програми.

    реферат [316,1 K], добавлен 22.01.2013

  • Розробка схеми бази даних бібліотеки для отримання довідки про книги та читачів, програмного забезпечення системи управління БД. Розгляд функціональних підсистем та побудова інтерфейсу. Проведення тестування програми, та виділення переваг та недоліків.

    курсовая работа [432,1 K], добавлен 24.01.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.