Как показать всплывающее окно в Android?

Я разрабатываю пример приложения. Я могу показать предупреждение при нажатии кнопки с помощью кнопки и кнопки. Но теперь я хочу показать всплывающее окно с именем пользователя (ярлыком) и текстовым полем (поле редактирования) и кнопкой. При нажатии на кнопку. Я могу сделать для этого другой файл xus popup?

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" /> 

Solutions Collecting From Web of "Как показать всплывающее окно в Android?"

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> 

Необходимо раздуть 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(); 

Вы можете сделать нормальную деятельность и настроить диалог android:theme для диалога:

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

И в вашем xml файле для этого действия вы можете определить высоту и ширину этого диалогового поля. Например:

 <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"> 

Важная вещь – это проявленная часть.

Попробуйте использовать: PopupWindow

Вы можете найти здесь пример: http://android-er.blogspot.co.il/2012/03/example-of-using-popupwindow.html

Вы можете использовать Dialog , как этот код:

 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(); 

Если вы хотите удалить строку заголовка, просто используйте этот код после определения:

 dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 

Попробуй это…

 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(); } 

Его работа для меня

 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(); 

Вот код xml и код активности.

  <?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> 

Файл активности

 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(); } } } 

Используйте приведенное ниже кодирование, чтобы отобразить всплывающее окно в 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); } 

Ссылка Youtube: https://www.youtube.com/watch?v=SEsVTTl6exg

Мы будем использовать класс PopupWindow для создания всплывающего окна.

Одна вещь, которую я хотел бы упомянуть, это то, что мы хотим, чтобы всплывающее окно было прикреплено к кнопке, открывшей ее. Например, если кнопка «Показать всплывающее окно» на скриншоте выше будет расположена посередине экрана, мы хотим, чтобы всплывающее окно придерживалось позиции кнопки. Чтобы добиться этого, сначала мы должны получить кнопку «x» и «y» на экране и передать их во всплывающее окно. Затем мы будем использовать смещение, чтобы выровнять всплывающее окно правильно – немного вправо и немного вниз, чтобы он не перекрывал всю кнопку.

Еще одна мысль, которую я хотел бы упомянуть, заключается в том, что для всплывающего окна мы будем использовать фоновое изображение с 9 патчами, так что это будет выглядеть более фантастично. Но, конечно, вы можете пропустить его и поместить любой фон, который вам нужен, или вообще не иметь фона.

Создайте файл layout / main.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: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> 

Создайте новый файл макета: layout / popup_layout.xml, который определяет макет всплывающего окна.

 <?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> 

А теперь самая интересная часть. Откройте TestPopupActivity и заполните его с помощью кода ниже. Внимательно прочитайте комментарии, чтобы понять, что происходит.

  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(); px = location[0]; py = 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, px + OFFSET_X, py + 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(); } }); } }