- Следующий пост будет охватывать:
- Создание нового приложения для Android
- Как назвать ваше приложение и модули
- Имя приложения
- название проекта
- Имя пакета
- Создание простого приложения hello world
- Как добавить элемент управления списком
- Понимание и добавление операторов импорта
- Добавление кода Java для заполнения элемента управления списком строк
- Загрузите библиотеку httpclient от Apache Foundation
- Добавление библиотеки httpclient в наш проект Android
- Добавление кода для вызова в мобильные службы Azure
- Добавление разрешений, позволяющих нашему приложению Android подключаться к мобильным службам Azure.
- Добавление всего Java-кода, необходимого для вызова мобильных служб Azure.
Вам понадобится пробная учетная запись для Windows Azure
- Пожалуйста, зарегистрируйтесь здесь:
Создание нового приложения (Android, конечно)
- Это предполагает, что вы установили:
- Затмение
- Android SDK и набор инструментов
Наименование вашего проекта Android
- Здесь вы укажете:
- Имя приложения
- название проекта
- Имя пакета
Выбор изображений по умолчанию, картинки и текста
- Вот как вы можете маркировать свое приложение
- Мы просто выберем значения по умолчанию
Выбор пустой активности по умолчанию
- Мы будем строить все с нуля, вместо того, чтобы инструментарий давал нам интерфейс мастер / детали.
- Мы просто добавим один элемент управления списком
Выбор имени активности по умолчанию
- Называя нашу деятельность.
- Это приведет к тому, что некоторые из основных файлов интерфейса пользователя и код будут названы
Просмотр проекта по умолчанию, созданного мастером Eclipse
- Теперь мы начнем редактировать код и строить интерфейс
Запуск шаблона Android по умолчанию
- Давайте запустим приложение, чтобы увидеть интерфейс Hello World по умолчанию
- Мы добавим наш собственный код в ближайшее время.
Просмотр запущенного проекта
- Это просто чтобы убедиться, что все инструменты работают.
- Честно говоря, эмуляторы не совсем надежны.
- Во многих случаях мне приходилось запускать образцы несколько раз, чтобы увидеть правильный результат.
Работа с элементом управления ListView
- Адаптеры и элементы управления ListView
- ListView получает свои данные через адаптер.
- Адаптер также определяет способ отображения каждой строки в ListView.
- Адаптер назначается списку с помощью метода setAdapter объекта ListView.
- Android предоставляет несколько стандартных адаптеров; мы будем использовать ArrayAdapter
- ArrayAdapter может обрабатывать данные на основе массивов или java.util.List.
Открытие текстового редактора и добавление элемента управления ListView
- Теперь мы добавим наш элемент управления ListView
- Это простой случай изменения этого файла XML
Реализация элемента управления ListView
- Нам просто нужно вставить следующий код.
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" >
<ListView
android:id="@+id/mylist"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context=".MainActivity" >
</ListView>
</RelativeLayout>
Изменение MainActivity.java — добавление операторов «import»
- Я представлю весь модуль исходного кода (MainActivity.java) в ближайшее время
- Эти операторы импорта необходимы для просмотра списка
- Для кода httpclient, необходимого для вызова мобильных служб Azure, потребуется больше
Добавление кода в onCreate ()
- onCreate () — метод запуска, в который мы можем добавить некоторый код.
- Мы заполним элемент управления listview некоторыми простыми строками.
- В следующем разделе мы позвоним в мобильные службы Azure для получения данных.
- Но сначала давайте разберемся с управлением списком.
- Сначала мы добавим некоторый код для добавления элементов в элемент управления ListView.
- Обратите внимание на следующее:
- Мы получаем идентификатор для элемента управления ListView, чтобы мы могли поговорить с ним (примечание 1)
- Создайте строковый массив того, что мы добавим в просмотр списка (примечание 2).
- Создайте ArrayAdapter и свяжите строки из предыдущего шага. (заметка 3)
- Свяжите ArrayAdapter с элементом управления ListView (примечание 4).
Просмотр приложения до сих пор
- Наш простой пример работает до сих пор.
- Следуй этим шагам:
- В меню выберите «Выполнить / Отладить как / Приложение Android».
Загрузите библиотеку httpclient
- Следуй этим шагам:
- Ссылка находится в верхнем лифте.
- Это будет почтовый файл.
- Извлеките httpclient-4.2.1.jar в папку.
- Перейдите в папку.
Копирование библиотеки httpclient в наш проект
- Это необходимо, потому что мы будем звонить в мобильные службы Azure.
- httpclient.jar содержит код, который позволяет использовать для вызовов http нашу мобильную службу Azure.
Редактирование кода для вызова в мобильной службе Azure
- Значения массива теперь будут заполняться значениями, которые мы получаем из мобильной службы Azure.
- Несколько вещей, на которые стоит обратить внимание:
- URL-адрес, который будет вызывать клиент Android:
- public static final String kGetTodosUrl = https://brunotodoservice.azure-mobile.net/tables/TodoItem;
- Напомним, что brunotodoservice — это то, что мы определили при создании нашей службы Windows Azure Mobile.
- public static final String kGetTodosUrl = https://brunotodoservice.azure-mobile.net/tables/TodoItem;
- URL-адрес, который будет вызывать клиент Android:
Открытие файла AndroidManifest.xml
- Нам нужно разрешить подключение к интернету для нашего приложения.
- Это делается в файле AndroidManifest.xml
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.androidandmobileservices"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
- Наше приложение потерпит неудачу без этой строки.
- Требуется.
Добавление кода в MainActivity.java
- Теперь вы измените файл MainActivity.java для вызова мобильных служб Azure.
- Вы будете две вещи из портала, чтобы написать этот код:
- URL-адрес для мобильных служб Azure
- Идентификатор приложения для мобильных служб Azure
- Есть много важных заявлений, чтобы добавить
package com.example.androidandmobileservices;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ListView;
// Add these import statements
import android.util.Log; // for logging
import org.json.JSONArray; // for JSONArray
import org.json.JSONObject; // for JSONObject
import java.io.InputStream; // for reading the response as bytes
import java.io.BufferedInputStream; // for reading the response as buffered bytes
import java.io.BufferedReader; // for reading bytes in a buffered manner
import java.io.InputStreamReader; // for reading bytes into BufferedReader
import java.net.HttpURLConnection; // for HttpURLConnection
import java.net.URL; // for URL
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Define needed constants: (1) url to our mobile service;
// (2) service app id (from Azure Mobile Service Website)
final String mobileServiceUrl =
"https://brunotodoservice.azure-mobile.net/tables/TodoItem";
final String mobileServiceAppId =
"FIoFunrUPBDhaFmmEXFHJCZoFEZILW45";
try
{
// Start building the request object to get the data
URL url = new URL(mobileServiceUrl);
// Build a request object to connect to Azure Mobile Services
HttpURLConnection urlRequest = (HttpURLConnection) url.openConnection();
// Reading data so the http verb is "GET"
urlRequest.setRequestMethod("GET");
// Start building up the request header
// (1) The data is JSON format
// (2) We need to pass the service app id (we get this from the Azure Portal)
urlRequest.addRequestProperty("Content-Type", "application/json");
urlRequest.addRequestProperty("ACCEPT", "application/json");
urlRequest.addRequestProperty("X-ZUMO-APPLICATION", mobileServiceAppId);
// We hold the json results
JSONObject[] todos = null;
// The listView control that will populate with data
ListView listView = (ListView) findViewById(R.id.mylist);
try
{
// Prepare some objects to receive the bytes of data
// from the Azure Mobile Service
InputStream in = new BufferedInputStream(
urlRequest.getInputStream());
BufferedReader bufferReader = new BufferedReader(
new InputStreamReader(in));
// responseString will hold our JSON data
StringBuilder responseString = new StringBuilder();
String line;
// Loop through the buffered input, reading JSON data
while ((line = bufferReader.readLine()) != null)
{
responseString.append(line);
}
// Convert responseString into a JSONArray
JSONArray jsonArray = new JSONArray(responseString.toString());
// Will hold an array of JSON objects
todos = new JSONObject[jsonArray.length()];
// values is very important. It is the string array that will
// get assigned to our ListView control.
String[] values = new String[jsonArray.length()];
String s;
// Loop through the objects. The ultimate goal is to have
// an array of strings called "values"
for (int i = 0; i < jsonArray.length(); i++)
{
todos[i] = jsonArray.getJSONObject(i);
values[i] = todos[i].get("text").toString();
}
// Create an array adapter using the string array called "values"
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, android.R.id.text1, values);
// Assign adapter to ListView
listView.setAdapter(adapter);
} catch (Exception ex) {
Log.e("MainActivity Failure", "Error getting JSON from Server: "+ ex.getMessage());
} finally {
urlRequest.disconnect();
}
} catch (Exception ex) {
Log.e("MainActivity Failure", "Error opening HTTP Connection: " + ex.getMessage());
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
- Теперь мы закончили и усвоили следующие уроки:
- Как настроить наши мобильные службы Azure
- Как добавить таблицы, вставить данные в реляционную базу данных
- Как использовать http для выдачи команд GET и POST
- Как использовать низкоуровневые инструменты (Fiddler) для взаимодействия с мобильными службами Azure
- Как создать приложение для Android для чтения данных из мобильных служб Azure.
- Я прощаюсь с вами. Спасибо за чтение.
Вам понадобится пробная учетная запись для Windows Azure
- Пожалуйста, зарегистрируйтесь здесь:
Спасибо ..
Я ценю, что вы нашли время, чтобы прочитать этот пост. Я с нетерпением жду ваших комментариев.























