Would like to give a work around for this problem.
Problem : How to use the same activity as both dialog and full screen based.
Solution :
- Define your activity in your AndroidManifest.xml with the theme
@android:style/Theme.Dialog - In your respective
.Javafile, check for anintentextra that definesdialogmode. - If it does not exist, set the
Themetoandroid.R.style.Theme. This is the defaultthemewhich is applied if you do not define any theme.
Code :
boolean fDialogMode = getIntent().hasExtra("dialog_mode");
if( ! fDialogMode ) {
super.setTheme(android.R.style.Theme);
}
Alternate Solution:
A more complex solution is to use AlertDialog as below:
- Define a
ListAdapterclass extended fromArrayAdapter. -
return
1ingetCountfunction@Override public int getCount() { return 1; } -
In the
getViewfunction,inflatethelayoutof theactivityyou need and do any customization before returning theview.@Override public View getView( int position, View view, ViewGroup group ) { View v = view; if( v == null ) { v = getSystemService(Context.LAYOUT_INFLATER_SERVICE).inflate( <layout res id>, null ); } ... Do any customization here .... return v; }
This is definitely a second choice option by if you are not doing too much processing in the activity class this could be an option.
Only reason to consider this solution could be that the logic to show it in a dialog is isolated to the places where it is used as a dialog.
Both the options worked for me but for obvious reasons I am taking the first option. 🙂