- Следующий пост будет охватывать:
- Создание нового приложения для 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
- Пожалуйста, зарегистрируйтесь здесь:
Спасибо ..
Я ценю, что вы нашли время, чтобы прочитать этот пост. Я с нетерпением жду ваших комментариев.