Monday 2 May 2016

Custom Dialog in Android Using Dialog Interface


Custom Dialog Popup Window using Android with Help of Dialog Interface


Main Activity onCreate()

To write the code inside the onclick event.


   btn_next = (Button)findViewById(R.id.btn_next);
        btn_next.setOnClickListener(new View.OnClickListener() {

            @Override            public void onClick(View v) {
                CustomizeDialog customDiglog= new CustomizeDialog(context);
                customDiglog.setTitle("Hello Welocme");
                customDiglog.setMessage("Hello Welocme");
                customDiglog.show();
            }
        });
    }
 
Custome Dialog Class
 
 
 import android.app.Dialog;
import android.content.Context;
import android.text.method.ScrollingMovementMethod;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;
/** Class Must extends with Dialog */
 /** 
Implement onClickListener to dismiss dialog when OK Button is pressed */
 public class CustomizeDialog extends Dialog implements OnClickListener {
    Button okButton;
    Context mContext;
    TextView mTitle = null;
    TextView mMessage = null;
    View v = null;
    public CustomizeDialog(Context context) {
        super(context);
        mContext = context;
        /** 'Window.FEATURE_NO_TITLE' - Used to hide the mTitle */         
         requestWindowFeature(Window.FEATURE_NO_TITLE);
        /** Design the dialog in main.xml file */ 
         setContentView(R.layout.dialog_msg);
        v = getWindow().getDecorView();
        v.setBackgroundResource(android.R.color.transparent);
        mTitle = (TextView) findViewById(R.id.dialogTitle);
        mMessage = (TextView) findViewById(R.id.dialogMessage);
        okButton = (Button) findViewById(R.id.OkButton);
        okButton.setOnClickListener(this);
    }
    @Override    public void onClick(View v) {
        /** When OK Button is clicked, dismiss the dialog */        if (v == okButton)
            dismiss();
    }
    @Override    public void setTitle(CharSequence title) {
        super.setTitle(title);
        mTitle.setText(title);
    }
    @Override    public void setTitle(int titleId) {
        super.setTitle(titleId);
        mTitle.setText(mContext.getResources().getString(titleId));
    }
    /**     * Set the message text for this dialog's window.     * 
 * @param message     *      - The new message to display in the title.     */ 
 public void setMessage(CharSequence message) {
        mMessage.setText(message);
        mMessage.setMovementMethod(ScrollingMovementMethod.getInstance());
    }
    /**     * Set the message text for this dialog's window. 
The text is retrieved from the resources with the supplied     * identifier. 
 *     * @param messageId     *      - the message's text resource identifier <br>
     * @see <b>Note : if resourceID wrong application may get crash.</b><br>
     *   Exception has not handle.     */    public void setMessage(int messageId) {
        mMessage.setText(mContext.getResources().getString(messageId));
        mMessage.setMovementMethod(ScrollingMovementMethod.getInstance());
    }
}
 
 
Layout xml file
 
 
dialog_msg.xml 

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout  
xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/LinearLayout" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:layout_margin="0dip" 
      android:background="@drawable/alert_bg"     
      android:orientation="vertical" 
      android:paddingBottom="15dip"     
      android:paddingLeft="0dip"     
      android:paddingRight="0dip" 
      android:paddingTop="0dip" >
 
    <TextView 
           android:id="@+id/dialogTitle"         
           android:layout_width="fill_parent" 
           android:layout_height="wrap_content" 
           android:layout_marginTop="20dip" 
           android:background="#00000000"         
           android:gravity="center" 
           android:text=""         
           android:textColor="#fff" 
           android:textSize="22sp" 
           android:textStyle="bold" >
   </TextView>
    <TextView 
          android:id="@+id/dialogMessage"         
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content"         
          android:layout_below="@+id/dialogTitle"         
          android:focusable="true" 
          android:focusableInTouchMode="true"         
          android:gravity="center"         
          android:maxLines="10"         
          android:padding="10dip" 
          android:scrollbars="vertical" 
          android:text="" 
          android:textColor="#fff"         
          android:textSize="18sp" >
    </TextView>
    <Button         
          android:id="@+id/OkButton" 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content"         
          android:layout_below="@+id/dialogMessage" 
          android:layout_centerHorizontal="true" 
          android:layout_marginLeft="10dip" 
          android:layout_marginRight="10dip" 
          android:background="@drawable/button" 
          android:text="OK"         
          android:textColor="#FFFFFF" >
    </Button>
</RelativeLayout>
 
 
Button design in drawable xml file 
 
button.xml
 
<?xml version="1.0" encoding="utf-8"?><selector xmlns: 
android="http://schemas.android.com/apk/res/android"
 
<item android:state_pressed="true" 
 android:drawable="@drawable/button_bg_pressed" /> 
<!-- pressed -->     
<item android:state_focused="true"  
android:drawable="@drawable/button_bg_pressed" />
 <!-- focused --> 
 <item android:drawable="@drawable/button_bg_normal" /> 
<!-- default --> 
</selector> 
 
 Images 
 



 


Result Activity:
 
 
 

 
 
 
 
 
 

No comments:

Post a Comment