Приложение, описанное ниже, позволяет выполня ть телефонные звонки через встроенное приложение для звонков, используя при этом собственный список контактов. Конечно, то же самое можно сделать вручную или добавить эти номера в адресную книгу телефона. Однако описанный способ может пригодится в некоторых ситуациях, например, в качестве части внутреннего приложения для хранения заранее определенного списка номеров сотрудников компании. В этом случае пользователь, используя корпоративное приложение, может вызывать нужные номера со своего личного смартфона, не добавляя контакты в адресную книгу. В некоторых случаях таких номеров может быть очень много, и специальное приложение позволит использовать рабочий справочник, не смешивая служебную информацию с личной.
Мы создадим приложение, содержащее несколько кнопок. Нажатие на кнопку вызывает конкретный телефонный номер, проассоциированный с ней. Для простоты понимания в программе не используются базы данных, все нужные сведения "защиты" в код приложения. При желании несложно доработать программу и вынести эту информацию в отдельный файл.
Создайте проект SimpleDialer. Рекомендуемые настройки см. на рис 10.1
(рис 10.1) Создание нового приложения
Добавьте следующую строчку в файл strings.xml:
<string name="main_label">My Friends</string>
В файле layout.xml создайте объекты TextView и шесть кнопок:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="15dip" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="25dip"
android:text="@string/main_label"
android:textSize="22sp" />
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18sp" />
…//здесь добавить описания остальных кнопок
</LinearLayout>
Перейдите в файл MainActivity.java. Создайте переменную для хранения числа записей и два массива строк:
private int entries = 6; private String phoneNum[]; private String buttonLabels[];
Так как кнопки будут реагировать на нажатие, добавьте в заголовок класса implements OnClickListener (нужно также добавить import android.view.View.OnClickListener;).
В методе onCreate() пропишите:
phoneNum = new String[entries]; buttonLabels = new String[entries];
и создайте шесть кнопок:
Button button1 = (Button)findViewById(R.id.button1);
button1.setText(buttonLabels[0]);
button1.setOnClickListener(this);
Button button2 = (Button)findViewById(R.id.button2);
button2.setText(buttonLabels[1]);
button2.setOnClickListener(this)
…
Создайте новый метод lunchDialer():
public void launchDialer(String number){
String numberToDial = "tel:"+number;
startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(numberToDial)));
}
Данный метод отвечает за вызов встроенного телефонного приложения, которое позволяет совершать звонки. Он получает номер телефона в качестве параметра и создает специально отформатированную строку numberToDial, которая является универсальным идентификатором (Uniform Resource Identifier). Далее создается новый интент со стандартным действием ACTION_DIAL (звонок), который используется для старта активности, отвечающей за звонки.
Заполните массивы через метод populateArrays()(не забудьте вызвать его в начале):
public void populateArrays(){
phoneNum[0] = "123-456-78-90";
phoneNum[1] = "234-567-89-01";
phoneNum[2] = "345-678-90-12";
phoneNum[3] = "456-789-01-23";
phoneNum[4] = "567-890-12-34";
phoneNum[5] = "678-901-23-45";
buttonLabels[0] = "Иванов Ваня";
buttonLabels[1] = "Петров Петя";
buttonLabels[2] = "Семеныч Сеня";
buttonLabels[3] = "Кузнецова Катя";
buttonLabels[4] = "Смирнова Саша";
buttonLabels[5] = "Попова Полина";
}
Далее опишите метод onClick():
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
launchDialer(phoneNum[0]);
break;
case R.id.button2:
launchDialer(phoneNum[1]);
break;
case R.id.button3:
launchDialer(phoneNum[2]);
break;
case R.id.button4:
launchDialer(phoneNum[3]);
break;
case R.id.button5:
launchDialer(phoneNum[4]);
break;
case R.id.button6:
launchDialer(phoneNum[5]);
break;
}
Приложение можно запускать.
(рис 10.2) Приложение, запущенное на устройстве
(рис 10.3) С помощью приложения можно совершать звонки
Подумайте, как можно переработать приложение, чтобы можно было хранить произвольное (не заданное заранее) количество контактов, добавлять и удалять контакты и сопутствующую информацию. Попробуйте реализовать появившиеся идеи. В качестве хранилища данных можно использовать базу данных SQLite. Работа с SQLite описана в первой части курса.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">SimpleDialer</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string name="hello">SimpleDialer</string>
<string name="main_label">My Friends</string>
</resources>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="15dip" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="25dip"
android:text="@string/main_label"
android:textSize="22sp" />
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18sp" />
<Button
android:id="@+id/button2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18sp" />
<Button
android:id="@+id/button3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18sp" />
<Button
android:id="@+id/button4"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18sp" />
<Button
android:id="@+id/button5"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18sp" />
<Button
android:id="@+id/button6"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18sp" />
</LinearLayout>
package mypackage.simpledialer;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.content.Intent;
import android.net.Uri;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity implements OnClickListener {
private int entries = 6;
private String phoneNum[];
private String buttonLabels[];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
phoneNum = new String[entries];
buttonLabels = new String[entries];
populateArrays();
Button button1 = (Button)findViewById(R.id.button1);
button1.setText(buttonLabels[0]);
button1.setOnClickListener(this);
Button button2 = (Button)findViewById(R.id.button2);
button2.setText(buttonLabels[1]);
button2.setOnClickListener(this);
Button button3 = (Button)findViewById(R.id.button3);
button3.setText(buttonLabels[2]);
button3.setOnClickListener(this);
Button button4 = (Button)findViewById(R.id.button4);
button4.setText(buttonLabels[3]);
button4.setOnClickListener(this);
Button button5 = (Button)findViewById(R.id.button5);
button5.setText(buttonLabels[4]);
button5.setOnClickListener(this);
Button button6 = (Button)findViewById(R.id.button6);
button6.setText(buttonLabels[5]);
button6.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void launchDialer(String number){
String numberToDial = "tel:"+number;
startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(numberToDial)));
}
phoneNum[0] = "123-456-78-90";
phoneNum[1] = "234-567-89-01";
phoneNum[2] = "345-678-90-12";
phoneNum[3] = "456-789-01-23";
phoneNum[4] = "567-890-12-34";
phoneNum[5] = "678-901-23-45";
buttonLabels[0] = "Иванов Ваня";
buttonLabels[1] = "Петров Петя";
buttonLabels[2] = "Семеныч Сеня";
buttonLabels[3] = "Кузнецова Катя";
buttonLabels[4] = "Смирнова Саша";
buttonLabels[5] = "Попова Полина"; }
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
launchDialer(phoneNum[0]);
break;
case R.id.button2:
launchDialer(phoneNum[1]);
break;
case R.id.button3:
launchDialer(phoneNum[2]);
break;
case R.id.button4:
launchDialer(phoneNum[3]);
break;
case R.id.button5:
launchDialer(phoneNum[4]);
break;
case R.id.button6:
launchDialer(phoneNum[5]);
break;
}
}
}
Приложение, описанное ниже, позволяет выполня ть телефонные звонки через встроенное приложение для звонков, используя при этом собственный список контактов. Конечно, то же самое можно сделать вручную или добавить эти номера в адресную книгу телефона. Однако описанный способ может пригодится в некоторых ситуациях, например, в качестве части внутреннего приложения для хранения заранее определенного списка номеров сотрудников компании. В этом случае пользователь, используя корпоративное приложение, может вызывать нужные номера со своего личного смартфона, не добавляя контакты в адресную книгу. В некоторых случаях таких номеров может быть очень много, и специальное приложение позволит использовать рабочий справочник, не смешивая служебную информацию с личной.
Мы создадим приложение, содержащее несколько кнопок. Нажатие на кнопку вызывает конкретный телефонный номер, проассоциированный с ней. Для простоты понимания в программе не используются базы данных, все нужные сведения "защиты" в код приложения. При желании несложно доработать программу и вынести эту информацию в отдельный файл.
Создайте проект SimpleDialer. Рекомендуемые настройки см. на рис 10.1
(рис 10.1) Создание нового приложения
Добавьте следующую строчку в файл strings.xml:
<string name="main_label">My Friends</string>
В файле layout.xml создайте объекты TextView и шесть кнопок:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="15dip" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="25dip"
android:text="@string/main_label"
android:textSize="22sp" />
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18sp" />
…//здесь добавить описания остальных кнопок
</LinearLayout>
Перейдите в файл MainActivity.java. Создайте переменную для хранения числа записей и два массива строк:
private int entries = 6; private String phoneNum[]; private String buttonLabels[];
Так как кнопки будут реагировать на нажатие, добавьте в заголовок класса implements OnClickListener (нужно также добавить import android.view.View.OnClickListener;).
В методе onCreate() пропишите:
phoneNum = new String[entries]; buttonLabels = new String[entries];
и создайте шесть кнопок:
Button button1 = (Button)findViewById(R.id.button1);
button1.setText(buttonLabels[0]);
button1.setOnClickListener(this);
Button button2 = (Button)findViewById(R.id.button2);
button2.setText(buttonLabels[1]);
button2.setOnClickListener(this)
…
Создайте новый метод lunchDialer():
public void launchDialer(String number){
String numberToDial = "tel:"+number;
startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(numberToDial)));
}
Данный метод отвечает за вызов встроенного телефонного приложения, которое позволяет совершать звонки. Он получает номер телефона в качестве параметра и создает специально отформатированную строку numberToDial, которая является универсальным идентификатором (Uniform Resource Identifier). Далее создается новый интент со стандартным действием ACTION_DIAL (звонок), который используется для старта активности, отвечающей за звонки.
Заполните массивы через метод populateArrays()(не забудьте вызвать его в начале):
public void populateArrays(){
phoneNum[0] = "123-456-78-90";
phoneNum[1] = "234-567-89-01";
phoneNum[2] = "345-678-90-12";
phoneNum[3] = "456-789-01-23";
phoneNum[4] = "567-890-12-34";
phoneNum[5] = "678-901-23-45";
buttonLabels[0] = "Иванов Ваня";
buttonLabels[1] = "Петров Петя";
buttonLabels[2] = "Семеныч Сеня";
buttonLabels[3] = "Кузнецова Катя";
buttonLabels[4] = "Смирнова Саша";
buttonLabels[5] = "Попова Полина";
}
Далее опишите метод onClick():
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
launchDialer(phoneNum[0]);
break;
case R.id.button2:
launchDialer(phoneNum[1]);
break;
case R.id.button3:
launchDialer(phoneNum[2]);
break;
case R.id.button4:
launchDialer(phoneNum[3]);
break;
case R.id.button5:
launchDialer(phoneNum[4]);
break;
case R.id.button6:
launchDialer(phoneNum[5]);
break;
}
Приложение можно запускать.
(рис 10.2) Приложение, запущенное на устройстве
(рис 10.3) С помощью приложения можно совершать звонки
Подумайте, как можно переработать приложение, чтобы можно было хранить произвольное (не заданное заранее) количество контактов, добавлять и удалять контакты и сопутствующую информацию. Попробуйте реализовать появившиеся идеи. В качестве хранилища данных можно использовать базу данных SQLite. Работа с SQLite описана в первой части курса.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">SimpleDialer</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string name="hello">SimpleDialer</string>
<string name="main_label">My Friends</string>
</resources>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="15dip" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="25dip"
android:text="@string/main_label"
android:textSize="22sp" />
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18sp" />
<Button
android:id="@+id/button2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18sp" />
<Button
android:id="@+id/button3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18sp" />
<Button
android:id="@+id/button4"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18sp" />
<Button
android:id="@+id/button5"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18sp" />
<Button
android:id="@+id/button6"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18sp" />
</LinearLayout>
package mypackage.simpledialer;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.content.Intent;
import android.net.Uri;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity implements OnClickListener {
private int entries = 6;
private String phoneNum[];
private String buttonLabels[];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
phoneNum = new String[entries];
buttonLabels = new String[entries];
populateArrays();
Button button1 = (Button)findViewById(R.id.button1);
button1.setText(buttonLabels[0]);
button1.setOnClickListener(this);
Button button2 = (Button)findViewById(R.id.button2);
button2.setText(buttonLabels[1]);
button2.setOnClickListener(this);
Button button3 = (Button)findViewById(R.id.button3);
button3.setText(buttonLabels[2]);
button3.setOnClickListener(this);
Button button4 = (Button)findViewById(R.id.button4);
button4.setText(buttonLabels[3]);
button4.setOnClickListener(this);
Button button5 = (Button)findViewById(R.id.button5);
button5.setText(buttonLabels[4]);
button5.setOnClickListener(this);
Button button6 = (Button)findViewById(R.id.button6);
button6.setText(buttonLabels[5]);
button6.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void launchDialer(String number){
String numberToDial = "tel:"+number;
startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(numberToDial)));
}
phoneNum[0] = "123-456-78-90";
phoneNum[1] = "234-567-89-01";
phoneNum[2] = "345-678-90-12";
phoneNum[3] = "456-789-01-23";
phoneNum[4] = "567-890-12-34";
phoneNum[5] = "678-901-23-45";
buttonLabels[0] = "Иванов Ваня";
buttonLabels[1] = "Петров Петя";
buttonLabels[2] = "Семеныч Сеня";
buttonLabels[3] = "Кузнецова Катя";
buttonLabels[4] = "Смирнова Саша";
buttonLabels[5] = "Попова Полина"; }
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
launchDialer(phoneNum[0]);
break;
case R.id.button2:
launchDialer(phoneNum[1]);
break;
case R.id.button3:
launchDialer(phoneNum[2]);
break;
case R.id.button4:
launchDialer(phoneNum[3]);
break;
case R.id.button5:
launchDialer(phoneNum[4]);
break;
case R.id.button6:
launchDialer(phoneNum[5]);
break;
}
}
}
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.