Суббота, 24.02.2018, 14:52
Поиск
Никнэйм
Сертификат на никнейм Olelucoye, зарегистрирован на Тимофеев Константин Михайлович
Зарегистрируй свой никнейм
Обратная связь
olelucoye.tk@yandex.ru
Реклама AdSense
Реклама
Друзья сайта
  • Лига медицинского права
  • Гостиница "Зай"
  • FAQ по системе
  • Инструкции для uCoz
  • Главная » Статьи » Андроид разработка

    Программируем калькулятор на андроид. Урок 4.

    Урок сделан специально для группы http://vk.com/amdroid.developer

    Урок 4. Создаем экран "О приложении".

    Для того чтобы пункты меню работали как нужно нам необходимо сначала создать активити, которые будут открываться при нажатии на пункты.

    Сначала создадим активити "О приложении". Для этого правой кнопкой кликаем на имени пакета в дереве нашего проекта (вспомните первый урок - мы его задавали при создании проекта - ru.urok.super_calc), выбираем New->Class. Заполняем имя создаваемого класса - AboutActivity. Также нам нужно задать суперклас, т.е. класс на основе которого мы создаем AboutActivity. Нажимаем кнопку browse в строке superclass, набираем в строке choose a type  - "activity". Ниже нам будут предложены все классы, которые содержат в своем имени "activity". Мы нужен самый верхний - обычный Activity. Выбираем его, жмем ОК. Должно быть как на первом рисунке.

    Затем жмем Finish. Откроется созданный нами пустой класс:

    package ru.urok.super_calc;

    import android.app.Activity;

    public class AboutActivity extends Activity {

    }

    В него нам нужно добавить метод onCreate:

    public class AboutActivity extends Activity {

           @Override

           protected void onCreate(Bundle savedInstanceState) {

                 super.onCreate(savedInstanceState);

           }     

    }

    Пустое активити готово. Что бы система знала о его существовании нужно зарегистрировать его в AndroidManifest.xml. Этот файл система считывает в первую очередь при открытии apk-файла. И если при вызове какого-либо активити записи о нем не обнаружится в манифесте, система выдаст ошибку.

    Открываем AndroidManifest.xml. Он лежит в корне проекта. Переходим на вкладку Application. Там уже есть запись о главной активити (главная активити регистрируется автоматически при создании проекта). Нажимаем Add, выбираем Activity. Затем в строке Name нажимаем кнопку browse и выбираем из списка AboutActivity. Сохраняем. Активити зарегистрировано. Все это можно было сделать на вкладке AndroidManifest.xml вручную. Если сравнить xml-код до проделанных операций и после, то можно увидеть новую строку:

    <activity android:name="AboutActivity"></activity>

    Теперь переходим на MainActivity.java и в обработчике пункта меню "О программе" заменим строку вывода сообщения на строку вызова AboutActivity:

    startActivity(new Intent(this, AboutActivity.class));

    Т.е. метод onOptionsItemSelected теперь должен выглядеть так:

    @Override

           public boolean onOptionsItemSelected(MenuItem item) {

                 switch(item.getItemId()){

                 case R.id.options_menu:

                        Toast.makeText(this, R.string.options, Toast.LENGTH_LONG).show();

                        break;

                 case R.id.about_menu:

                        startActivity(new Intent(this, AboutActivity.class));

                        break;

                }

                 return super.onOptionsItemSelected(item);

           }

    Запустим приложение на эмуляторе и нажмем пункт меню "О программе". Откроется пустой экран. Все правильно. Чтобы на экране что-то было, нужно создать макет экрана и дать команду активити его отобразить.

    Правой кнопкой кликаем на папке res\layout. Выбираем New->Android XML File. Задаем имя файла about_calc. Ниже можно задать корневой элемент, оставляем по умолчанию. Нажимаем Finish.

    Размещаем в корневом элементе два TextView и один Button. Т.к. в будущем рассчитываем добавить в приложение еще локализацию, для текстов снова будем использовать строковые константы из string.xml:

    <string name="text_about">Калькулятор - программа создана специально для группы</string>

    <string name="vk_link">Android developer</string>

    <string name="bt_good">Хорошо</string>

    Прикрепим их к соответствующим элементам на макете в параметре text. Сделаем второе текстовое поле кликабельным - при клике на него в браузере будет открываться стена группы Android developer. Но в этот раз зададим методы обработки нажатий на текстовое поле и кнопку сразу в макете. Это делается заданием имени метода в параметре onClick элемента. Вот что у нас получится:

    <?xml version="1.0" encoding="utf-8"?>

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:orientation="vertical" >

        <TextView

            android:id="@+id/textView1"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:layout_weight="1"

            android:gravity="center_horizontal"

            android:text="@string/text_about" />

        <TextView

            android:id="@+id/textView2"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:layout_weight="1"

            android:gravity="center_horizontal"

            android:clickable="true"

            android:onClick="onLink"

            android:text="@string/vk_link"

            android:textColor="#111199" />

        <Button

            android:id="@+id/button1"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:text="@string/bt_good"

            android:onClick="onGood" />

    </LinearLayout>

    Я добавил немного форматирования в макет, чтобы элементы не были скучкованы и покрасил текст ссылки синим. И еще, чуть не забыл, чтобы текстовое поле было кликабельным нужно установит его параметр clickable в true.  Макет готов.

    В AboutActivity.java связываем активити с макетом, а также добавляем два метода для обработки нажатий. Заметьте названия методов должны соответствовать указанным в макете.

    public class AboutActivity extends Activity {

           @Override

           protected void onCreate(Bundle savedInstanceState) {

                 super.onCreate(savedInstanceState);

                 setContentView(R.layout.about_calc);

           }     

          public void onLink(View v){

                

           }

          public void onGood(View v){

                

           }

    }

    Можно запустить на эмуляторе, посмотреть на полученное активити. Вообще, рекомендую чаще запускать приложение во время разработки - так легче отловить грубые ошибки.

    Теперь добавляем код для обработчиков нажатий. onGood будет просто закрывать активити. Тут все просто - пишем finish(); и все. Для текстового поля пишем такой код:

                 Intent intent = new Intent(Intent.ACTION_VIEW);

                 intent.setData(Uri.parse("http://vk.com/amdroid.developer"));

                 startActivity(intent);

    Теперь при нажатии на ссылку, система спросит каким браузером её открыть. Ну это если установлено несколько браузеров, если только один или какой-нибудь браузер установлен по умолчанию в системе, то откроется в нем. Запускаем на эмуляторе, тестим.

    В следующем уроке сделаем экран настроек.

    Программируем калькулятор на андроид. Урок 10.

    Программируем калькулятор на андроид. Урок 9.

    Программируем калькулятор на андроид. Урок 8.

    Программируем калькулятор на андроид. Урок 7.

    Программируем калькулятор на андроид. Урок 6.

    Программируем калькулятор на андроид. Урок 5.

    Программируем калькулятор на андроид. Урок 3.

    Программируем калькулятор на андроид. Урок 2.

    Программируем калькулятор на андроид. Урок 1.

    Листинги (MainActivity.java не привожу - там изменение в одной строчке, в string.xml думаю тоже не сложно разобраться, about_calc.xml полностью есть выше):

    AboutActivity.java

    package ru.urok.super_calc;

    import android.app.Activity;

    import android.content.Intent;

    import android.net.Uri;

    import android.os.Bundle;

    import android.view.View;

     

    public class AboutActivity extends Activity {

           @Override

           protected void onCreate(Bundle savedInstanceState) {

                 super.onCreate(savedInstanceState);

                 setContentView(R.layout.about_calc);

           }     

          public void onLink(View v){

                 Intent intent = new Intent(Intent.ACTION_VIEW);

                 intent.setData(Uri.parse("http://vk.com/amdroid.developer"));

                 startActivity(intent);

           }

          public void onGood(View v){

                 finish();

           }

    }

     

    AndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?>

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"

        package="ru.urok.super_calc"

        android:versionCode="1"

        android:versionName="1.0" >

        <uses-sdk

            android:minSdkVersion="14"

            android:targetSdkVersion="14" />

        <application

            android:allowBackup="true"

            android:icon="@drawable/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>

            <activity android:name="AboutActivity"></activity>

        </application>

      </manifest>

    Категория: Андроид разработка | Добавил: Olelucoye (24.11.2014)
    Просмотров: 1583
    | Теги: Калькулятор, java, Android, переход между активити | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Меню сайта
    Категории раздела
    Андроид разработка [23]
    libGDX [24]
    Мои андроид проекты [6]
    Excel [7]
    Железяки [5]
    Скрипты в блокноте [4]
    Разное [1]
    Форма входа
    Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Яндекс Метрика
    Яндекс.Метрика