tipos personalizado modal example ejemplo dialogos custom alertas android alertdialog

modal - ¿Cómo crear un diálogo de alerta personalizado en Android?



modal en android (9)

esta trabajando para mi

Dialog m_dialog; m_dialog = new Dialog(BusinessDetail.this); m_dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); LayoutInflater m_inflater = LayoutInflater.from(BusinessDetail.this); View m_view = m_inflater.inflate(R.layout.rateus_popup, null); myPopLay = (LinearLayout) m_view.findViewById(R.id.myPopLay); m_dialog.setContentView(m_view); m_dialog.show();

Estoy desarrollando una aplicación de muestra. Puedo mostrar alerta al hacer clic en el botón con un título y un botón. Pero ahora quiero mostrar una ventana emergente con un nombre de usuario (Etiqueta) y un campo de texto (campo Editar) y un botón. al hacer clic en button.can puedo hacer otro archivo XML emergente para eso?

public void selfDestruct(View view) { // Kabloey Log.d("Naveen", "Test===="); System.out.println("----------------------ghfgjhf-----------------"); AlertDialog alertDialog = new AlertDialog.Builder(SecondActivity.this).create(); alertDialog.setTitle("Reset..."); alertDialog.setMessage("R u sure?"); alertDialog.setButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { //here you can add functions } }); alertDialog.show(); }

<Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="@string/self_destruct" android:onClick="selfDestruct" />


Aquí está el código xml y el código de actividad verlo.

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="56dp" android:text="Popup Window will display on this Activity" /> <Button android:id="@+id/popupbutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="Show Popup" /> </RelativeLayout>

Archivo de actividad

package com.nkm.popup; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup.LayoutParams; import android.widget.Button; import android.widget.LinearLayout; import android.widget.PopupWindow; import android.widget.TextView; public class PopupDemoActivity extends Activity implements OnClickListener { LinearLayout layoutOfPopup; PopupWindow popupMessage; Button popupButton, insidePopupButton; TextView popupText; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); init(); popupInit(); } public void init() { popupButton = (Button) findViewById(R.id.popupbutton); popupText = new TextView(this); insidePopupButton = new Button(this); layoutOfPopup = new LinearLayout(this); insidePopupButton.setText("OK"); popupText.setText("This is Popup Window.press OK to dismiss it."); popupText.setPadding(0, 0, 0, 20); layoutOfPopup.setOrientation(1); layoutOfPopup.addView(popupText); layoutOfPopup.addView(insidePopupButton); } public void popupInit() { popupButton.setOnClickListener(this); insidePopupButton.setOnClickListener(this); popupMessage = new PopupWindow(layoutOfPopup, LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); popupMessage.setContentView(layoutOfPopup); } @Override public void onClick(View v) { if (v.getId() == R.id.popupbutton) { popupMessage.showAsDropDown(popupButton, 0, 0); } else { popupMessage.dismiss(); } } }


Prueba esto...

AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Reset...").setView(editText) .setMessage("R u sure?").setCancelable(true) .setPositiveButton("Yes", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int arg1) { //Do here whatever..... } }); AlertDialog alert = builder.create(); alert.show(); }


Puedes realizar una actividad normal y configurar el android:theme en diálogo:

<activity android:name="com.example.carsharingkitdemo.YourPopUpActivity" android:theme="@android:style/Theme.Holo.Dialog" > </activity>

y en su archivo xml para esta actividad puede decidir la altura y el ancho de este campo de diálogo. Por ejemplo:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="300dp" android:layout_height="100dp">

Lo importante es la parte manifiesta.


Puedes usar Dialog , como este código:

final Dialog dialog = new Dialog(context); // dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 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!"); 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();

Si desea eliminar la barra de título, utilice este código después de definir:

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);



Usaremos la clase PopupWindow para crear la ventana emergente.

Una cosa que me gustaría mencionar es que queremos que la ventana emergente se adjunte al botón que lo abrió. Por ejemplo, si el botón "Mostrar elemento emergente" de la captura de pantalla anterior se ubicaría en el centro de la pantalla, queremos que la ventana emergente se pegue a la posición del botón. Para lograr esto, primero debemos obtener las posiciones "x" e "y" del botón en la pantalla y pasarlas a la ventana emergente. Luego, usaremos un desplazamiento para alinear la ventana emergente correctamente: un poco a la derecha y un poco más abajo, de modo que no se superponga a todo el botón.

Otro aspecto que me gustaría mencionar es que usaremos una imagen de fondo de 9 parches para la ventana emergente, para que se vea más elegante. Pero, por supuesto, puede omitirlo y poner el fondo que desee, o ningún fondo en absoluto.

Cree el archivo layout / main.xml y agregue un botón:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#CCC" android:orientation="vertical" > <Button android:id="@+id/show_popup" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Show Popup" /> </LinearLayout>

Cree un nuevo archivo de diseño: layout / popup_layout.xml que defina el diseño de la ventana emergente.

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:id="@+id/popup" android:layout_height="wrap_content" android:background="@drawable/popup_bg" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Popup" android:textAppearance="?android:attr/textAppearanceLarge" /> <TextView android:id="@+id/textView2" android:layout_marginTop="5dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="This is a simple popup" /> <Button android:id="@+id/close" android:layout_marginTop="10dp" android:layout_gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Close" /> </LinearLayout>

Y ahora la parte más interesante. Abra el TestPopupActivity y llénelo con el siguiente código. Lea atentamente los comentarios para entender lo que está pasando.

public class TestPopupActivity extends Activity { //The "x" and "y" position of the "Show Button" on screen. Point p; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btn_show = (Button) findViewById(R.id.show_popup); btn_show.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { //Open popup window if (p != null) showPopup(TestPopupActivity.this, p); } }); } // Get the x and y position after the button is draw on screen // (It''s important to note that we can''t get the position in the onCreate(), // because at that stage most probably the view isn''t drawn yet, so it will return (0, 0)) @Override public void onWindowFocusChanged(boolean hasFocus) { int[] location = new int[2]; Button button = (Button) findViewById(R.id.show_popup); // Get the x, y location and store it in the location[] array // location[0] = x, location[1] = y. button.getLocationOnScreen(location); //Initialize the Point with x, and y positions p = new Point(); p.x = location[0]; p.y = location[1]; } // The method that displays the popup. private void showPopup(final Activity context, Point p) { int popupWidth = 200; int popupHeight = 150; // Inflate the popup_layout.xml LinearLayout viewGroup = (LinearLayout) context.findViewById(R.id.popup); LayoutInflater layoutInflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View layout = layoutInflater.inflate(R.layout.popup_layout, viewGroup); // Creating the PopupWindow final PopupWindow popup = new PopupWindow(context); popup.setContentView(layout); popup.setWidth(popupWidth); popup.setHeight(popupHeight); popup.setFocusable(true); // Some offset to align the popup a bit to the right, and a bit down, relative to button''s position. int OFFSET_X = 30; int OFFSET_Y = 30; // Clear the default translucent background popup.setBackgroundDrawable(new BitmapDrawable()); // Displaying the popup at the specified location, + offsets. popup.showAtLocation(layout, Gravity.NO_GRAVITY, p.x + OFFSET_X, p.y + OFFSET_Y); // Getting a reference to Close button, and close the popup when clicked. Button close = (Button) layout.findViewById(R.id.close); close.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { popup.dismiss(); } }); } }


Use la siguiente codificación para mostrar un Pop up en Android.

AlertDialog.builder builder=new AlertDilaog.Builder(this); builder.setMessage("PopUP Example"); AlertDialog alert=builder.create(); alert.setTitle(""); alert.show(); new Handler.postDelayed(new Runnable() { @override public void run() { //TODO alert.dismiss(); } },1*1000); }

Enlace de YouTube: https://www.youtube.com/watch?v=SEsVTTl6exg


custom_dialog.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <EditText android:id="@+id/editText" android:hint="Enter some thing" android:layout_width="wrap_content" android:layout_height="wrap_content" > <requestFocus /> </EditText> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginTop="10dp"> <Button android:id="@+id/save" android:layout_marginTop="15dp" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="SAVE" /> <Button android:id="@+id/cancel" android:layout_marginTop="15dp" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Cancel" /> </LinearLayout> </LinearLayout>

Necesidad de inflar custom_dialog.xml

final Dialog dialog = new Dialog(this); dialog.setContentView(R.layout.custom_dialog); dialog.setTitle("Custom Alert Dialog"); final EditText editText = (EditText) dialog.findViewById(R.id.editText); Button btnSave = (Button) dialog.findViewById(R.id.save); Button btnCancel = (Button) dialog.findViewById(R.id.cancel); dialog.show();