自定义警报对话框未显示,没有代码错误

问题描述 投票:0回答:1

我正在尝试创建自定义警报对话框,但即使没有错误显示也无法显示它。它用于带有选择按钮和上传按钮的名称文本框。当我单击主页上的浮动操作按钮时,我试图打开它。我不确定我在做什么错,因为一切都没有显示任何错误。

这是我的add_new_menu_layout.xml文件

  <?xml version="1.0" encoding="utf-8"?>
  <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardElevation="4dp">

<LinearLayout
    android:layout_margin="20dp"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <EditText
        android:id="@+id/edit_Name"
        android:hint="Name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColorHint="@color/colorPrimary"
        android:text=""
        android:textColor="@color/colorPrimary"
        android:textSize="34sp"
        android:inputType="textPassword"
        app:met_baseColor="@color/colorPrimary"
        app:met_floatingLabel="highlight"
        app:met_primaryColor="@color/colorPrimary"
        app:met_singleLineEllipsis="true"
        />

    <LinearLayout
        android:weightSum="2"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <Button
            android:id="@+id/btn_select"
            android:text="SELECT"
            android:textColor="@android:color/white"
            android:layout_marginRight="8dp"
            android:layout_marginLeft="8dp"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:layout_margin="8dp"
            android:color="@color/colorPrimary"
            android:shadowColor="@android:color/black" />

        <Button
            android:id="@+id/btn_upload"
            android:text="UPLOAD"
            android:textColor="@android:color/white"
            android:layout_marginEnd="8dp"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:layout_margin="8dp"
            android:color="@color/colorPrimaryDark"
            android:shadowColor="@android:color/black" />

    </LinearLayout>
</LinearLayout>

这是我主页上的代码。

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            showDialog();
        }
    });

 private void showDialog() {
    AlertDialog.Builder alertDialog = new AlertDialog.Builder(Home.this);
    alertDialog.setTitle("Add new Category");
    alertDialog.setMessage("Please fill full information");

    LayoutInflater inflater = this.getLayoutInflater();
    View add_menu_layout = inflater.inflate(R.layout.add_new_menu_layout,null);

    editName = add_menu_layout.findViewById(R.id.edit_Name);
    btnSelect = add_menu_layout.findViewById(R.id.btn_select);
    btnUpload = add_menu_layout.findViewById(R.id.btn_upload);

    alertDialog.setView(add_menu_layout);
    alertDialog.setIcon(R.drawable.ic_shopping_cart);


    alertDialog.setPositiveButton("YES", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterface, int i) {

        }
    });
    alertDialog.setNegativeButton("NO", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterface, int i) {

        }
    });
    alertDialog.show();
}
android onclick android-alertdialog onclicklistener customdialog
1个回答
0
投票

您需要确保此代码:

fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            showDialog();
        }
    });

在单击此按钮之前已在某处执行/执行。在您的活动的onCreate方法中放置此代码的合适位置。

完整代码:

public class Home extends Activity {
    private EditText editName;
    private Button btnSelect;
    private Button btnUpload;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);
        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                showDialog();
            }
        });
    }

    private void showDialog() {
        AlertDialog.Builder alertDialog = new AlertDialog.Builder(Home.this);
        alertDialog.setTitle("Add new Category");
        alertDialog.setMessage("Please fill full information");

        LayoutInflater inflater = this.getLayoutInflater();
        View add_menu_layout = inflater.inflate(R.layout.add_new_menu_layout,null);

        editName = add_menu_layout.findViewById(R.id.edit_Name);
        btnSelect = add_menu_layout.findViewById(R.id.btn_select);
        btnUpload = add_menu_layout.findViewById(R.id.btn_upload);

        alertDialog.setView(add_menu_layout);
        alertDialog.setIcon(R.drawable.ic_shopping_cart);


        alertDialog.setPositiveButton("YES", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {

            }
        });
        alertDialog.setNegativeButton("NO", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {

            }
        });
        alertDialog.show();
    }
}

结果:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.