Диалоги в любой операционной системе, и в андроид в частности, являются всплывающим информационным окном взаимодействия в пользователем.
Содержание:
Создание проекта Диалог
Создадим простое приложение для андроид, вызывающее диалог с кнопками "Да" и "Нет". В Android Studio создадим новый проект, назовем его MyDialog. В файле string.xml внесем несколько строковых значений, для текста диалога, кнопок.
<resources>
<string name="app_name">My Dialog</string>
<string name="btn">Нажми меня</string>
<string name="mydialog">"Привет я ваш диалог!\nНажми любую кнопку!"</string>
<string name="yes">Нажата кнопка Да</string>
<string name="no">Нажата кнопка Нет</string>
</resources>
В файле main.xml для элемента TextView очистим значение android:text="" и добавим andriod:id="@+id/text2". Добавим в разметку RelativeLayout(относительное позиционирование) и поместим туда TextView и кнопку Button с andriod:id="@+id/button". Кнопку расположим по центру, текстовую метку выше кнопки.
<relativelayout
android:layout_width="368dp"
android:layout_height="495dp"
tools:layout_editor_absolutex="8dp"
tools:layout_editor_absolutey="8dp"
tools:ignore="MissingConstraints">
<button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignparenttop="true"
android:layout_centerhorizontal="true"
android:layout_margintop="112dp"
android:text="@string/btn"
tools:layout_editor_absolutex="148dp"
tools:layout_editor_absolutey="184dp">
</button>
<textview
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:layout_alignparenttop="true"
android:layout_centerhorizontal="true"
android:layout_margintop="58dp">
</textview>
</relativelayout>
В файле MainActivity.java перед функцией onCreate объявим переменную mytv типа TextView.
TextView mytv;
В функцию onCreate добавим переменную mybtn с типом Button и свяжем её через findViewById() с элементом button, так же свяжем переменную mytv с элементом text2.
Button mybtn = (Button)findViewById(R.id.button);
mytv = (TextView)findViewById(R.id.textView2);
Функция ShowAlertDialog()
Создадим обработчик нажатия на кнопку mybtn в котором напишем функцию ShowAlertDialog()
mybtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ShowAlertDialog(v);
}
});
Вне функции onCreate создадим функцию ShowAlertDialog(), с реакцией нажатия на кнопку "Да", с подфункцией onClick, передающей в text2 через mytv текст из строкового ресурса yes.
public void ShowAlertDialog(View view){
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
alertDialogBuilder.setMessage(R.string.mydialog);
alertDialogBuilder.setPositiveButton("Да", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mytv.setText(R.string.yes);
}
});
Напишем обработку нажатия на кнопку "Нет" аналогичным образом, и произведем вызов самого диалога.
alertDialogBuilder.setNegativeButton("Нет", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mytv.setText(R.string.no);
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
Запуск приложения
Запустим приложение в эмуляторе, и нажав на кнопку вызова диалога, мы можем выбрать "Да" или "Нет",
произойдёт закрытие диалога, а в главном окне будет видно какая кнопка была нажата.
Полный текст strings.xml
<resources>
<string name="app_name">My Dialog</string>
<string name="btn">Нажми меня</string>
<string name="mydialog">"Привет я ваш диалог!\nНажми любую кнопку!"</string>
<string name="yes">Нажата кнопка Да</string>
<string name="no">Нажата кнопка Нет</string>
</resources>
Полный текст main.xml
<!--?xml version="1.0" encoding="utf-8"?-->
<android.support.constraint.constraintlayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="ru.maxfad.mydialog.MainActivity">
<relativelayout
android:layout_width="368dp"
android:layout_height="495dp"
tools:layout_editor_absolutex="8dp"
tools:layout_editor_absolutey="8dp"
tools:ignore="MissingConstraints">
<button android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignparenttop="true"
android:layout_centerhorizontal="true"
android:layout_margintop="112dp"
android:text="@string/btn"
tools:layout_editor_absolutex="148dp"
tools:layout_editor_absolutey="184dp">
</button>
<textview
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:layout_alignparenttop="true"
android:layout_centerhorizontal="true"
android:layout_margintop="58dp">
</textview>
</relativelayout>
</android.support.constraint.constraintlayout>
Полный текст MainActivity.java
package ru.maxfad.mydialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
TextView mytv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button mybtn = (Button)findViewById(R.id.button);
mytv = (TextView)findViewById(R.id.textView2);
mybtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ShowAlertDialog(v);
}
});
}
public void ShowAlertDialog(View view){
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
alertDialogBuilder.setMessage(R.string.mydialog);
alertDialogBuilder.setPositiveButton("Да", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mytv.setText(R.string.yes);
}
});
alertDialogBuilder.setNegativeButton("Нет", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mytv.setText(R.string.no);
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
}
Диалог в андроид пишем приложение в Android Studio
Рекомендуем смотреть видео в полноэкранном режиме, в настойках качества выбирайте 1080 HD, не забывайте подписываться на канал в YouTube, там Вы найдете много интересного видео, которое выходит достаточно часто. Приятного просмотра!
С уважением, авторы сайта Компьютерапия
Понравилось? Поделись этим видео с друзьями!
Диалог в андроид пишем приложение в Android Studio
Рекомендуем смотреть видео в полноэкранном режиме, в настойках качества выбирайте 1080 HD, не забывайте подписываться на видео ВКонтакте, там Вы найдете много интересного, которое выходит достаточно часто. Приятного просмотра!
С уважением, авторы сайта Компьютерапия
Понравилось? Поделись этим видео с друзьями!
Диалог в андроид пишем приложение в Android Studio
Рекомендуем смотреть видео в полноэкранном режиме, в настойках качества выбирайте 1080 HD, не забывайте подписываться на канал в Рутубе, там Вы найдете много интересного, которое выходит достаточно часто. Приятного просмотра!
С уважением, авторы сайта Компьютерапия
Понравилось? Поделись этим видео с друзьями!

