-2

I build my own custom Dialogbut its not opening when i am clicking on ImageView. I also checked by putting break point Dialog is coming null how to rectify it. I want to shift TextView of id unread_count to the right of parent . How can I do this ?

If I set android:layout_alignParentRight="true" then I have the following picture :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="260dp"
    android:layout_height="wrap_content"
    android:background="@android:color/white"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/colorPrimary"
        android:gravity="center"
        android:minHeight="120dp"
        android:orientation="vertical"
        android:padding="20dp">

        <ImageView
            android:id="@+id/icon"
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:tint="@android:color/white"
            app:srcCompat="@drawable/info" />

        <TextView
            android:id="@+id/Dialogtitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:text="Latest @ LootBox"
            android:textAppearance="@style/TextAppearance.AppCompat.Medium"
            android:textColor="@android:color/white"
            android:textStyle="bold" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical|start"
        android:orientation="vertical"
        android:padding="20dp">

        <TextView
            android:id="@+id/Dialogcontent"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="3dp"
            android:text="All These Deals, Offers etc Are For Limited Period of Time And Can be Over at Any Time Without Any Prior Notice."
            android:textAlignment="center"
            android:textAppearance="@style/TextAppearance.AppCompat.Subhead"
            android:textColor="#666666" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/lyt_action"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="15dp"
        android:gravity="center"
        android:orientation="horizontal">

        <Button
            android:id="@+id/bt_close"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/btn_rounded_green"
            android:paddingLeft="20dp"
            android:paddingRight="20dp"
            android:text="Get Started"
            android:textColor="@android:color/white" />

    </LinearLayout>

</LinearLayout>

Java code

private ImageView dialogBox;
Dialog customDialog;

customDialog = new Dialog(getActivity());

dialogBox = (ImageView) view.findViewById(R.id.dialogBox);
dialogBox.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        showDialog();
    }

});

private void showDialog() {
    customDialog.setContentView(R.layout.dialog_info);
}
Son Truong
  • 13,661
  • 5
  • 32
  • 58

2 Answers2

0

You forgot to call show method on the custom dialog. Change your code to

private void showDialog() {
    customDialog.setContentView(R.layout.dialog_info);

    // Add this line
    customDialog.show();
}
Son Truong
  • 13,661
  • 5
  • 32
  • 58
  • 3
    Please read [`How do I write a good answer?`](https://stackoverflow.com/help/how-to-answer) – ADM Mar 08 '19 at 06:57
0

You can try this way, you have to find dialog views using dialog.findViewById

Dialog dialog = new Dialog(mActivity);

    dialog.setContentView(R.layout.dialog_info);
    //dialog.setCancelable(false); //set Cancelable

    ImageView dialogBox = (ImageView) dialog.findViewById(R.id.imgViewID);



    dialogBox.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            dialog.dismiss();



        }
    });



    dialog.show();

    //for big size dialog
   /* Window window = dialog.getWindow();
    window.setLayout(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);*/

I check you dialog_info.xml code

You need to improve your design code, you don't need to take static height and weight

I update your layout code here

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@android:color/white"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/colorPrimary"
        android:gravity="center"

        android:orientation="vertical"
        android:padding="20dp">

        <ImageView
            android:id="@+id/icon"
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:tint="@android:color/white"
            app:srcCompat="@drawable/ic_close" />

        <TextView
            android:id="@+id/Dialogtitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:text="Latest @ LootBox"
            android:textAppearance="@style/TextAppearance.AppCompat.Medium"
            android:textColor="@android:color/white"
            android:textStyle="bold" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical|start"
        android:orientation="vertical"
        android:padding="20dp">

        <TextView
            android:id="@+id/Dialogcontent"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="3dp"
            android:text="All These Deals, Offers etc Are For Limited Period of Time And Can be Over at Any Time Without Any Prior Notice."
            android:textAlignment="center"
            android:textAppearance="@style/TextAppearance.AppCompat.Subhead"
            android:textColor="#666666" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/lyt_action"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="15dp"
        android:gravity="center"
        android:orientation="horizontal">

        <Button
            android:id="@+id/bt_close"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/colorPrimary"
            android:paddingLeft="20dp"
            android:paddingRight="20dp"
            android:text="Get Started"
            android:textColor="@android:color/white" />

    </LinearLayout>

</LinearLayout>
Adil
  • 812
  • 1
  • 9
  • 29