簡體   English   中英

自定義警報對話框未顯示且代碼中沒有錯誤

[英]Custom alert dialog not showing with no errors in code

我正在嘗試創建一個自定義警報對話框,但即使認為沒有顯示錯誤,也無法顯示它。 它用於帶有按鈕選擇和按鈕上傳的名稱文本框。 當我單擊主頁上的浮動操作按鈕時,我試圖打開它。 我不確定我到底做錯了什么,因為一切都沒有顯示任何錯誤。

這是我的 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();
}

您需要確保此代碼:

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

結果:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM