「このエントリを削除してもよろしいですか?」というメッセージを表示したダイアログ/ポップアップウィンドウを表示します。 「削除」というボタンが1つあります。 Delete
に触れると、そのエントリを削除します。それ以外は何もしません。
これらのボタンのクリックリスナーを書いたのですが、ダイアログやポップアップを呼び出すにはどうすればよいですか。
これにはAlertDialog
name__を使用し、そのBuilder
name__クラスを使用してそれを構成することができます。以下の例では、渡されたContextから適切なテーマをダイアログが継承するのでContext
name__のみを取り込むデフォルトコンストラクタを使用しますが、必要に応じて2番目のパラメータとして特定のテーマリソースを指定できるコンストラクタもあります。そうする。
new AlertDialog.Builder(context)
.setTitle("Delete entry")
.setMessage("Are you sure you want to delete this entry?")
// Specifying a listener allows you to take an action before dismissing the dialog.
// The dialog is automatically dismissed when a dialog button is clicked.
.setPositiveButton(Android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Continue with delete operation
}
})
// A null listener allows the button to dismiss the dialog and take no further action.
.setNegativeButton(Android.R.string.no, null)
.setIcon(Android.R.drawable.ic_dialog_alert)
.show();
このコードを試してください:
AlertDialog.Builder builder1 = new AlertDialog.Builder(context);
builder1.setMessage("Write your message here.");
builder1.setCancelable(true);
builder1.setPositiveButton(
"Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
builder1.setNegativeButton(
"No",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert11 = builder1.create();
alert11.show();
David Hedlundが投稿したコードからエラーが出ました。
ウィンドウを追加できません - トークンnullが無効です
同じエラーが発生した場合は、以下のコードを使用してください。できます!!
runOnUiThread(new Runnable() {
@Override
public void run() {
if (!isFinishing()){
new AlertDialog.Builder(YourActivity.this)
.setTitle("Your Alert")
.setMessage("Your Message")
.setCancelable(false)
.setPositiveButton("ok", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// Whatever...
}
}).show();
}
}
});
ちょっと単純なもの! Javaクラスの任意の場所にダイアログメソッドを作成します。
public void openDialog() {
final Dialog dialog = new Dialog(context); // Context, this, etc.
dialog.setContentView(R.layout.dialog_demo);
dialog.setTitle(R.string.dialog_title);
dialog.show();
}
今すぐレイアウトXML dialog_demo.xml
を作成し、あなたのUI /デザインを作成します。これは私がデモ目的で作成したサンプルです。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="wrap_content">
<TextView
Android:id="@+id/dialog_info"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:padding="10dp"
Android:text="@string/dialog_text"/>
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="40dp"
Android:layout_below="@id/dialog_info">
<Button
Android:id="@+id/dialog_cancel"
Android:layout_width="0dp"
Android:layout_height="match_parent"
Android:layout_weight="0.50"
Android:background="@color/dialog_cancel_bgcolor"
Android:text="Cancel"/>
<Button
Android:id="@+id/dialog_ok"
Android:layout_width="0dp"
Android:layout_height="match_parent"
Android:layout_weight="0.50"
Android:background="@color/dialog_ok_bgcolor"
Android:text="Agree"/>
</LinearLayout>
</RelativeLayout>
今すぐあなたが好きな場所からopenDialog()
を呼び出すことができます:)これは上記のコードのスクリーンショットです。
テキストと色はstrings.xml
とcolors.xml
から使用されていることに注意してください。あなたはあなた自身を定義することができます。
最近では、AlertDialogを直接作成する代わりにDialogFragmentを使用することをお勧めします。
このコードを使うことができます:
AlertDialog.Builder alertDialog2 = new AlertDialog.Builder(
AlertDialogActivity.this);
// Setting Dialog Title
alertDialog2.setTitle("Confirm Delete...");
// Setting Dialog Message
alertDialog2.setMessage("Are you sure you want delete this file?");
// Setting Icon to Dialog
alertDialog2.setIcon(R.drawable.delete);
// Setting Positive "Yes" Btn
alertDialog2.setPositiveButton("YES",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Write your code here to execute after dialog
Toast.makeText(getApplicationContext(),
"You clicked on YES", Toast.LENGTH_SHORT)
.show();
}
});
// Setting Negative "NO" Btn
alertDialog2.setNegativeButton("NO",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Write your code here to execute after dialog
Toast.makeText(getApplicationContext(),
"You clicked on NO", Toast.LENGTH_SHORT)
.show();
dialog.cancel();
}
});
// Showing Alert Dialog
alertDialog2.show();
私のために
new AlertDialog.Builder(this)
.setTitle("Closing application")
.setMessage("Are you sure you want to exit?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).setNegativeButton("No", null).show();
// Dialog box
public void dialogBox() {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
alertDialogBuilder.setMessage("Click on Image for tag");
alertDialogBuilder.setPositiveButton("Ok",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
}
});
alertDialogBuilder.setNegativeButton("cancel",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
AlertDialog.Builderを使用する
AlertDialog alertDialog = new AlertDialog.Builder(this)
//set icon
.setIcon(Android.R.drawable.ic_dialog_alert)
//set title
.setTitle("Are you sure to Exit")
//set message
.setMessage("Exiting will call finish() method")
//set positive button
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//set what would happen when positive button is clicked
finish();
}
})
//set negative button
.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//set what should happen when negative button is clicked
Toast.makeText(getApplicationContext(),"Nothing Happened",Toast.LENGTH_LONG).show();
}
})
.show();
次のような出力が得られます。
警告ダイアログのチュートリアルを表示するには、以下のリンクを使用してください。
これは アラートダイアログを作成する方法の基本的なサンプルです :
AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
dialog.setCancelable(false);
dialog.setTitle("Dialog on Android");
dialog.setMessage("Are you sure you want to delete this entry?" );
dialog.setPositiveButton("Delete", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
//Action for "Delete".
}
})
.setNegativeButton("Cancel ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//Action for "Cancel".
}
});
final AlertDialog alert = dialog.create();
alert.show();
new AlertDialog.Builder(context)
.setTitle("title")
.setMessage("message")
.setPositiveButton(Android.R.string.ok, null)
.show();
Personに電話をかけたいかどうかをPersonに尋ねるためのダイアログを作成しました。
import Android.app.Activity;
import Android.app.AlertDialog;
import Android.content.DialogInterface;
import Android.content.Intent;
import Android.net.Uri;
import Android.os.Bundle;
import Android.view.View;
import Android.view.View.OnClickListener;
import Android.widget.ImageView;
import Android.widget.Toast;
public class Firstclass extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first);
ImageView imageViewCall = (ImageView) findViewById(R.id.ring_mig);
imageViewCall.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v)
{
try
{
showDialog("0728570527");
}
catch (Exception e)
{
e.printStackTrace();
}
}
});
}
public void showDialog(final String phone) throws Exception
{
AlertDialog.Builder builder = new AlertDialog.Builder(Firstclass.this);
builder.setMessage("Ring: " + phone);
builder.setPositiveButton("Ring", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
Intent callIntent = new Intent(Intent.ACTION_DIAL);// (Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:" + phone));
startActivity(callIntent);
dialog.dismiss();
}
});
builder.setNegativeButton("Avbryt", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
dialog.dismiss();
}
});
builder.show();
}
}
これは間違いなくあなたのために役立ちます。このコードを試してください:ボタンをクリックすると、あなたは1つ、2つまたは3つのボタンを警告ダイアログで置くことができます.
SingleButtton.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
// Creating alert Dialog with one Button
AlertDialog alertDialog = new AlertDialog.Builder(AlertDialogActivity.this).create();
// Setting Dialog Title
alertDialog.setTitle("Alert Dialog");
// Setting Dialog Message
alertDialog.setMessage("Welcome to Android Application");
// Setting Icon to Dialog
alertDialog.setIcon(R.drawable.tick);
// Setting OK Button
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int which)
{
// Write your code here to execute after dialog closed
Toast.makeText(getApplicationContext(),"You clicked on OK", Toast.LENGTH_SHORT).show();
}
});
// Showing Alert Message
alertDialog.show();
}
});
btnAlertTwoBtns.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
// Creating alert Dialog with two Buttons
AlertDialog.Builder alertDialog = new AlertDialog.Builder(AlertDialogActivity.this);
// Setting Dialog Title
alertDialog.setTitle("Confirm Delete...");
// Setting Dialog Message
alertDialog.setMessage("Are you sure you want delete this?");
// Setting Icon to Dialog
alertDialog.setIcon(R.drawable.delete);
// Setting Positive "Yes" Button
alertDialog.setPositiveButton("YES",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int which) {
// Write your code here to execute after dialog
Toast.makeText(getApplicationContext(), "You clicked on YES", Toast.LENGTH_SHORT).show();
}
});
// Setting Negative "NO" Button
alertDialog.setNegativeButton("NO",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Write your code here to execute after dialog
Toast.makeText(getApplicationContext(), "You clicked on NO", Toast.LENGTH_SHORT).show();
dialog.cancel();
}
});
// Showing Alert Message
alertDialog.show();
}
});
btnAlertThreeBtns.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
// Creating alert Dialog with three Buttons
AlertDialog.Builder alertDialog = new AlertDialog.Builder(
AlertDialogActivity.this);
// Setting Dialog Title
alertDialog.setTitle("Save File...");
// Setting Dialog Message
alertDialog.setMessage("Do you want to save this file?");
// Setting Icon to Dialog
alertDialog.setIcon(R.drawable.save);
// Setting Positive Yes Button
alertDialog.setPositiveButton("YES",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
// User pressed Cancel button. Write Logic Here
Toast.makeText(getApplicationContext(),
"You clicked on YES",
Toast.LENGTH_SHORT).show();
}
});
// Setting Negative No Button... Neutral means in between yes and cancel button
alertDialog.setNeutralButton("NO",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
// User pressed No button. Write Logic Here
Toast.makeText(getApplicationContext(),
"You clicked on NO", Toast.LENGTH_SHORT)
.show();
}
});
// Setting Positive "Cancel" Button
alertDialog.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
// User pressed Cancel button. Write Logic Here
Toast.makeText(getApplicationContext(),
"You clicked on Cancel",
Toast.LENGTH_SHORT).show();
}
});
// Showing Alert Message
alertDialog.show();
}
});
あなたはこれを試すことができます....
AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
dialog.setCancelable(false);
dialog.setTitle("Dialog on Android");
dialog.setMessage("Are you sure you want to delete this entry?" );
dialog.setPositiveButton("Delete", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
//Action for "Delete".
}
})
.setNegativeButton("Cancel ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//Action for "Cancel".
}
});
final AlertDialog alert = dialog.create();
alert.show();
new AlertDialog.Builder(v.getContext()).setMessage("msg to display!").show();
AlertDialog.Builder
を使ってダイアログボックスを作成できます。
これを試してください:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Are you sure you want to delete this entry?");
builder.setPositiveButton("Yes, please", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//perform any action
Toast.makeText(getApplicationContext(), "Yes clicked", Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//perform any action
Toast.makeText(getApplicationContext(), "No clicked", Toast.LENGTH_SHORT).show();
}
});
//creating alert dialog
AlertDialog alertDialog = builder.create();
alertDialog.show();
警告ダイアログの正と負のボタンの色を変えるには、alertDialog.show();
の後に以下の2行を書くことができます
alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(getResources().getColor(R.color.colorPrimary));
alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE).setTextColor(getResources().getColor(R.color.colorPrimaryDark));
ダイアログを閉じたいときは注意してください - dialog.dismiss()
を使います。私の最初の試みで、私はdismissDialog(0)
(おそらく私はどこかからコピーしたものです)を使いました - 時に は動作します。システムが供給するオブジェクトを使用すると、より安全な選択のように聞こえます。
私がDavid Hedlundに投稿したものよりも動的な方法を共有することで素晴らしい答えを追加したいと思います。
private void showAlertDialog(@NonNull Context context, @NonNull String alertDialogTitle, @NonNull String alertDialogMessage, @NonNull String positiveButtonText, @Nullable String negativeButtonText, @NonNull final int positiveAction, @Nullable final Integer negativeAction, @NonNull boolean hasNegativeAction)
{
AlertDialog.Builder builder;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Lollipop) {
builder = new AlertDialog.Builder(context, Android.R.style.Theme_Material_Dialog_Alert);
} else {
builder = new AlertDialog.Builder(context);
}
builder.setTitle(alertDialogTitle)
.setMessage(alertDialogMessage)
.setPositiveButton(positiveButtonText, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
switch (positiveAction)
{
case 1:
//TODO:Do your positive action here
break;
}
}
});
if(hasNegativeAction || negativeAction!=null || negativeButtonText!=null)
{
builder.setNegativeButton(negativeButtonText, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
switch (negativeAction)
{
case 1:
//TODO:Do your negative action here
break;
//TODO: add cases when needed
}
}
});
}
builder.setIcon(Android.R.drawable.ic_dialog_alert);
builder.show();
}
Try this code
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
MainActivity.this);
// set title
alertDialogBuilder.setTitle("AlertDialog Title");
// set dialog message
alertDialogBuilder
.setMessage("Some Alert Dialog message.")
.setCancelable(false)
.setPositiveButton("OK",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
Toast.makeText(this, "OK button click ", Toast.LENGTH_SHORT).show();
}
})
.setNegativeButton("CANCEL",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Toast.makeText(this, "CANCEL button click ", Toast.LENGTH_SHORT).show();
dialog.cancel();
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();
あなたもこの方法を試すことができます、それはあなたに物質的なスタイルのダイアログを提供します
private void showDialog()
{
String text2 = "<font color=#212121>Medi Notification</font>";//for custom title color
AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.AppCompatAlertDialogStyle);
builder.setTitle(Html.fromHtml(text2));
String text3 = "<font color=#A4A4A4>You can complete your profile now or start using the app and come back later</font>";//for custom message
builder.setMessage(Html.fromHtml(text3));
builder.setPositiveButton("DELETE", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
toast = Toast.makeText(getApplicationContext(), "DELETE", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
});
builder.setNegativeButton("CANCEL", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
toast = Toast.makeText(getApplicationContext(), "CANCEL", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
});
builder.show();
}
public void showSimpleDialog(View view) {
// Use the Builder class for convenient dialog construction
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setCancelable(false);
builder.setTitle("AlertDialog Title");
builder.setMessage("Simple Dialog Message");
builder.setPositiveButton("OK!!!", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
//
}
})
.setNegativeButton("Cancel ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
// Create the AlertDialog object and return it
builder.create().show();
}
Androidのダイアログに関する私のブログもチェックしてください、あなたはここですべての詳細を見つけるでしょう: http://www.fahmapps.com/2016/09/26/dialogs-in-Android-part1/ 。
showDialog(MainActivity.this, "title", "message", "OK", "Cancel", {...}, {...});
fun showDialog(context: Context, title: String, msg: String,
positiveBtnText: String, negativeBtnText: String?,
positiveBtnClickListener: DialogInterface.OnClickListener,
negativeBtnClickListener: DialogInterface.OnClickListener?): AlertDialog {
val builder = AlertDialog.Builder(context)
.setTitle(title)
.setMessage(msg)
.setCancelable(true)
.setPositiveButton(positiveBtnText, positiveBtnClickListener)
if (negativeBtnText != null)
builder.setNegativeButton(negativeBtnText, negativeBtnClickListener)
val alert = builder.create()
alert.show()
return alert
}
public static AlertDialog showDialog(@NonNull Context context, @NonNull String title, @NonNull String msg,
@NonNull String positiveBtnText, @Nullable String negativeBtnText,
@NonNull DialogInterface.OnClickListener positiveBtnClickListener,
@Nullable DialogInterface.OnClickListener negativeBtnClickListener) {
AlertDialog.Builder builder = new AlertDialog.Builder(context)
.setTitle(title)
.setMessage(msg)
.setCancelable(true)
.setPositiveButton(positiveBtnText, positiveBtnClickListener);
if (negativeBtnText != null)
builder.setNegativeButton(negativeBtnText, negativeBtnClickListener);
AlertDialog alert = builder.create();
alert.show();
return alert;
}
Edittext付きの警告ダイアログ
AlertDialog.Builder builder = new AlertDialog.Builder(context);//Context is activity context
final EditText input = new EditText(context);
builder.setTitle(getString(R.string.remove_item_dialog_title));
builder.setMessage(getString(R.string.dialog_message_remove_item));
builder.setTitle(getString(R.string.update_qty));
builder.setMessage("");
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT);
input.setLayoutParams(lp);
input.setHint(getString(R.string.enter_qty));
input.setTextColor(ContextCompat.getColor(context, R.color.textColor));
input.setInputType(InputType.TYPE_CLASS_NUMBER);
input.setText("String in edit text you want");
builder.setView(input);
builder.setPositiveButton(getString(Android.R.string.ok),
(dialog, which) -> {
//Positive button click event
});
builder.setNegativeButton(getString(Android.R.string.cancel),
(dialog, which) -> {
//Negative button click event
});
AlertDialog dialog = builder.create();
dialog.show();
この静的メソッドを作り、あなたが望むところならどこでもそれを使ってください。
public static void showAlertDialog(Context context, String title, String message, String posBtnMsg, String negBtnMsg) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(title);
builder.setMessage(message);
builder.setPositiveButton(posBtnMsg, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.setNegativeButton(negBtnMsg, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
import Android.app.*;
import Android.os.Bundle;
import Android.view.Gravity;
import Android.view.View;
import Android.view.View.OnClickListener;
import Android.view.ViewGroup.LayoutParams;
import Android.widget.*;
public class ShowPopUp extends Activity {
PopupWindow popUp;
LinearLayout layout;
TextView tv;
LayoutParams params;
LinearLayout mainLayout;
Button but;
boolean click = true;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
popUp = new PopupWindow(this);
layout = new LinearLayout(this);
mainLayout = new LinearLayout(this);
tv = new TextView(this);
but = new Button(this);
but.setText("Click Me");
but.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (click) {
popUp.showAtLocation(mainLayout, Gravity.BOTTOM, 10, 10);
popUp.update(50, 50, 300, 80);
click = false;
} else {
popUp.dismiss();
click = true;
}
}
});
params = new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
layout.setOrientation(LinearLayout.VERTICAL);
tv.setText("Hi this is a sample text for popup window");
layout.addView(tv, params);
popUp.setContentView(layout);
// popUp.showAtLocation(layout, Gravity.BOTTOM, 10, 10);
mainLayout.addView(but, params);
setContentView(mainLayout);
}
}
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("This is Title");
builder.setMessage("This is message for Alert Dialog");
builder.setPositiveButton("Positive Button", (dialog, which) -> onBackPressed());
builder.setNegativeButton("Negative Button", (dialog, which) -> dialog.cancel());
builder.show();
これは、警告ダイアログを何らかのコード行で作成するのに似た方法です。
ボタンのonclickメソッドでこのalartダイアログを使用していました。
button.setOnClickListener(v -> {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
LayoutInflater layoutInflaterAndroid = LayoutInflater.from(this);
View view2 = layoutInflaterAndroid.inflate(R.layout.cancel_dialog, null);
builder.setView(view2);
builder.setCancelable(false);
final AlertDialog alertDialog = builder.create();
alertDialog.show();
view2.findViewById(R.id.yesButton).setOnClickListener(v1 -> onBackPressed());
view2.findViewById(R.id.nobutton).setOnClickListener(v12 -> alertDialog.dismiss());
});
dialog.xml
<androidx.constraintlayout.widget.ConstraintLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical">
<TextView
Android:id="@+id/textmain"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_margin="5dp"
Android:gravity="center"
Android:padding="5dp"
Android:text="@string/warning"
Android:textColor="@Android:color/black"
Android:textSize="18sp"
Android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
Android:id="@+id/textpart2"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_margin="5dp"
Android:gravity="center"
Android:lines="2"
Android:maxLines="2"
Android:padding="5dp"
Android:singleLine="false"
Android:text="@string/dialog_cancel"
Android:textAlignment="center"
Android:textColor="@Android:color/black"
Android:textSize="15sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textmain" />
<TextView
Android:id="@+id/yesButton"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_marginStart="40dp"
Android:layout_marginTop="5dp"
Android:layout_marginEnd="40dp"
Android:layout_marginBottom="5dp"
Android:background="#87cefa"
Android:gravity="center"
Android:padding="10dp"
Android:text="@string/yes"
Android:textAlignment="center"
Android:textColor="@Android:color/black"
Android:textSize="15sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textpart2" />
<TextView
Android:id="@+id/nobutton"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_marginStart="40dp"
Android:layout_marginTop="5dp"
Android:layout_marginEnd="40dp"
Android:background="#87cefa"
Android:gravity="center"
Android:padding="10dp"
Android:text="@string/no"
Android:textAlignment="center"
Android:textColor="@Android:color/black"
Android:textSize="15sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/yesButton" />
<TextView
Android:layout_width="match_parent"
Android:layout_height="20dp"
Android:layout_margin="5dp"
Android:padding="10dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/nobutton" />
</androidx.constraintlayout.widget.ConstraintLayout>
リストからエントリを削除するためのコード
/*--dialog for delete entry--*/
private void cancelBookingAlert() {
AlertDialog dialog;
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this, R.style.AlertDialogCustom);
alertDialog.setTitle("Delete Entry");
alertDialog.setMessage("Are you sure you want to delete this entry?");
alertDialog.setCancelable(false);
alertDialog.setPositiveButton("Delete", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//code to delete entry
}
});
alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
dialog = alertDialog.create();
dialog.show();
}
削除ボタンをクリックして上記のメソッドを呼び出す
過去数日、同僚はXamarin.Android
でAlertDialog
を使用するように私に尋ね続け、ほとんどすべての人がこの質問をrefとして送信しました。 、ここにXamarin.Android
(C#
)バージョンがあります:
var alertDialog = new AlertDialog.Builder(this) // this: Activity
.SetTitle("Hello!")
.SetMessage("Are you sure?")
.SetPositiveButton("Ok", (sender, e) => { /* ok things */ })
.SetNegativeButton("Cancel", (sender, e) => { /* cancel things */ })
.Create();
alertDialog.Show();
// you can customize your AlertDialog, like so
var tvMessage = alertDialog.FindViewById<TextView>(Android.Resource.Id.Message);
tvMessage.TextSize = 13;
// ...
アクティビティを作成してAppCompatActivityを拡張することができます。それからマニフェストに次のスタイルを置きます。
<activity Android:name=".YourCustomDialog"
Android:theme="Theme.AppCompat.Light.Dialog">
</activity>
ボタンとTextViewでそれを膨らませる
それからこれをダイアログのように使います。
たとえば、linearLayoutでは、次のパラメータを入力します。
Android:layout_width="300dp"
Android:layout_height="wrap_content"
LayoutInflater inflater = LayoutInflater.from(HistoryActivity.this);
final View vv = inflater.inflate(R.layout.dialog_processing_tts, null);
final AlertDialog.Builder alert = new AlertDialog.Builder(
HistoryActivity.this);
alert.setTitle("Delete");
alert.setView(vv);
alert.setCancelable(false)
.setPositiveButton("Delete", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
databaseHelperClass.deleteHistory(list.get(position).getID());
list.clear();
setAdapterForList();
}
})
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
final AlertDialog dialog = alert.create();
dialog.show();
Anko (Kotlinの開発者による公式ライブラリ)を使えば、簡単に使えます
alert("Alert title").show()
もっと複雑なもの
alert("Hi, I'm Roy", "Have you tried turning it off and on again?") {
yesButton { toast("Oh…") }
noButton {}
}.show()
Ankoをインポートするには:
implementation "org.jetbrains.anko:anko:0.10.8"
This is done in kotlin
var builder : AlertDialog.Builder = if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.Lollipop)
{
AlertDialog.Builder(this,Android.R.style.Theme_Material_Dialog_Alert)
}
else{
AlertDialog.Builder(this)
}
builder.setTitle("Delete Entry")
.setMessage("Are you want to delete this entry")
.setPositiveButton("Yes") {
}
.setNegativeButton("No"){
}
.setIcon(R.drawable.ic_launcher_foreground)
.show()