Java android custom dialog

Android custom dialog example

In this tutorial, we show you how to create a custom dialog in Android. See following steps :

  1. Create a custom dialog layout (XML file).
  2. Attach the layout to Dialog .
  3. Display the Dialog .
  4. Done.

P.S This project is developed in Eclipse 3.7, and tested with Android 2.3.3.

1 Android Layout Files

Two XML files, one for main screen, one for custom dialog.

2. Activity

Read the comment and demo in next step, it should be self-explorary.

 package com.mkyong.android; import android.app.Activity; import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; public class MainActivity extends Activity < final Context context = this; private Button button; public void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.main); button = (Button) findViewById(R.id.buttonShowCustomDialog); // add button listener button.setOnClickListener(new OnClickListener() < @Override public void onClick(View arg0) < // custom dialog final Dialog dialog = new Dialog(context); dialog.setContentView(R.layout.custom); dialog.setTitle("Title. "); // set the custom dialog components - text, image and button TextView text = (TextView) dialog.findViewById(R.id.text); text.setText("Android custom dialog example!"); ImageView image = (ImageView) dialog.findViewById(R.id.image); image.setImageResource(R.drawable.ic_launcher); Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK); // if button is clicked, close the custom dialog dialogButton.setOnClickListener(new OnClickListener() < @Override public void onClick(View v) < dialog.dismiss(); >>); dialog.show(); > >); > > 

3. Demo

Start it, the “ main.xml ” layout is display.

android custom dialog example

Click on the button, display custom dialog “ custom.xml ” layout, if you click on the “OK” button, dialog box will be closed.

Источник

Урок 65. Диалоги. AlertDialog. Кастомизация

Кроме сообщения или списка мы можем помещать в диалог свои View-компоненты. Для этого доступно как основное тело диалога, так и заголовок. Для этого нам необходимо создать View и с помощью методов setCustomTitle или setView вставить этот View соответственно в заголовок или тело диалога. Я буду использовать только setView и работать с телом диалога. Использование метода setCustomTitle и работа с заголовком диалога полностью аналогична.

Нарисуем приложение, которое будет использовать свой View-компонент в теле диалога и рассмотрим, как можно модифицировать содержимое этого компонента. Будем добавлять и удалять TextView в теле диалога.

Читайте также:  Java define exception type

Project name: P0651_AlertDialogCustom
Build Target: Android 2.3.3
Application name: AlertDialogCustom
Package name: ru.startandroid.develop.p0651alertdialogcustom
Create Activity: MainActivity

В strings.xml пропишем тексты:

  AlertDialogCustom Добавить Удалить 

main.xml – экран с двумя кнопками для удаления и добавления элементов в диалог

dialog.xml – наше будущее кастом-тело диалога.

В tvTime— будем отображать текущее время, а в tvCount – кол-во добавленных TextView.

Метод onPrepareDialog – здесь мы с помощью метода getWindow получаем доступ к View-компонентам диалога, находим среди них tvTime и показываем в нем время. Далее определяем, какая кнопка была нажата. Если кнопка добавления, то создаем TextView и помещаем его в view (который определили в методе onCreateDialog) и добавляем в коллекцию textViews. Таким образом TextView добавится в тело диалога. Если же хотим удалить TextView, то находим в коллекции последний добавленный и удаляем его из компонента view и из коллекции textViews. В конце обновляем счетчик кол-ва добавленных TextView в диалоге.

Обратите внимание, что я использую два разных способа для получения доступа к tvCount и tvTime. tvCount я нашел сразу после создания view в методе onCreateDialog. А в случае с tvTime я показываю, как найти View-компонент в диалоге без использования объекта view. Какой вам удобнее по ситуации, тот и используйте.

Все сохраним и запустим приложение. Нажмем кнопку Добавить

Появился диалог. Отображает время, кол-во добавленных TextView и собственно сами добавленные TextView.

Закрываем диалог кнопкой Назад, жмем еще раз добавить

Добавилось еще одно TextView.

Закрываем диалог, жмем кнопку Удалить.

Последнее TextView удалилось.

— рассматриваем обработчики событий диалога
— программно закрываем и показываем диалог

Присоединяйтесь к нам в Telegram:

— в канале StartAndroid публикуются ссылки на новые статьи с сайта startandroid.ru и интересные материалы с хабра, medium.com и т.п.

Читайте также:  text-align

— в чатах решаем возникающие вопросы и проблемы по различным темам: Android, Compose, Kotlin, RxJava, Dagger, Тестирование, Performance

— ну и если просто хочется поговорить с коллегами по разработке, то есть чат Флудильня

Источник

Java android custom dialog

Для создания своих диалоговых окон используется компонент AlertDialog в связке с классом фрагмента DialogFragment . Рассмотрим их применение.

Вначале добавим в проект новый класс фрагмента, который назовем CustomDialogFragment :

package com.example.dialogsapp; import android.app.AlertDialog; import android.app.Dialog; import android.os.Bundle; import androidx.fragment.app.DialogFragment; import androidx.annotation.NonNull; public class CustomDialogFragment extends DialogFragment < @NonNull public Dialog onCreateDialog(Bundle savedInstanceState) < AlertDialog.Builder builder=new AlertDialog.Builder(getActivity()); return builder.setTitle("Диалоговое окно").setMessage("Для закрытия окна нажмите ОК").create(); >>

Класс фрагмента содержит всю стандартную функциональность фрагмента с его жизненным циклом, но при этом наследуется от класса DialogFragment , который добавляет ряд дополнительных функций. И для его создания мы можем использвоать два способа:

  • Переопределение метода onCreateDialog() , который возвращает объект Dialog .
  • Использование стандартного метода onCreateView() .

Для создания диалогового окна в методе onCreateDialog() применяется класс AlertDialog.Builder . С помощью своих методов он позволяет настроить отображение диалогового окна:

  • setTitle : устанавливает заголовок окна
  • setView : устанавливает разметку интерфейса окна
  • setIcon : устанавливает иконку окна
  • setPositiveButton : устанавливает кнопку подтверждения действия
  • setNeutralButton : устанавливает «нейтральную» кнопку, действие которой может отличаться от действий подтверждения или отмены
  • setNegativeButton : устанавливает кнопку отмены
  • setMessage : устанавливает текст диалогового окна, но при использовании setView данный метод необязателен или может рассматриваться в качестве альтернативы, если нам надо просто вывести сообщение.
  • create : создает окно

В данном же случае диаговое кно просто выводит некоторое сообщение.

Для вызова этого диалогового окна в файле activity_main.xml определим кнопку:

В коде MainActivity определим обработчик нажатия кнопки, который будет запускать диалоговое окно:

package com.example.dialogsapp; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; public class MainActivity extends AppCompatActivity < @Override public void onCreate(Bundle savedInstance) < super.onCreate(savedInstance); setContentView(R.layout.activity_main); >public void showDialog(View v) < CustomDialogFragment dialog = new CustomDialogFragment(); dialog.show(getSupportFragmentManager(), "custom"); >>

Для вызова диалогового окна создается объект фрагмента CustomDialogFragment, затем у него вызывается метод show() . В этот метод передается менеджер фрагментов FragmentManager и строка — произвольный тег.

Читайте также:  Browser Details.

И поле нажатия на кнопку мы сможем ввести данные в диалоговое окно:

DialogFragment и AlertDialog в Android и Java

Теперь немного кастомизируем диалоговое окно:

public Dialog onCreateDialog(Bundle savedInstanceState)

Диалоговые окна в Android и Java

Здесь добавляетcя иконка, которая в качестве изображения использует встроенный ресурс android.R.drawable.ic_dialog_alert и устанавливаются две кнопки. Для каждой кнопки можно установить текст и обработчик нажатия. В данном случае для обработчика нажатия передается null, то есть обработчик не установлен.

Теперь добавим в папку res/layout новый файл dialog.xml :

И изменим создание диалогового окна:

public Dialog onCreateDialog(Bundle savedInstanceState)

Метод setView() устанавливает в качестве интерфейса окна ранее добавленный ресурс layout dialog.xml .

Создание диалоговых окон в Android

При этом, как можно увидеть на скриншоте, кнопки и заголовок с иконкой не входят в разметку.

Источник

Android Custom Alert Dialog With Examples [Latest]

Android Custom Alert Dialog With Examples

In this tutorial, we’ll be discussing and implementing Custom Alert Dialogs in our Android Application.

We’d discussed Android Alert Dialogs already here.

Alert Dialogs

Alert Dialogs by default are used to create dialogs with text messages and button actions.
Following are the setter methods that we’d already discussed in the previous tutorial.

  • setTitle
  • setMessage
  • setPositiveButton
  • setNegativeButton
  • setNeutralButton
  • setPositiveButtonIcon/setNegativeButtonIcon/setNeutralButtonIcon
  • setCancelable
  • setIcon
  • setOnDismissListener
  • setItems – shows an array of items in the form of a list inside the alert dialog
  • setMultiChoiceItems – Sets a list of items to choose from inside the alert dialog
  • setView – Used to set a custom layout view inside the alert dialog.
  • show()
  • setShowListener() – This is triggered when the alert dialog is displayed on the screen. We can do any dynamic changes in here

A ProgressDialog is an AlertDialog with the ProgressBar widget.

In the following section we’ll create different types of custom alert dialog:

  • With List of Items
  • With EditText
  • With ImageView
  • With SeekBar
  • With RatingBar

Project Structure

android-drag-drop-recyclerview-project

Code

The code for the activity_main.xml layout file is given below:

Источник

Оцените статью