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
.Java
file, check for an intent
extra that defines dialog
mode.
- If it does not exist, set the
Theme
to android.R.style.Theme
. This is the default theme
which 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
ListAdapter
class extended from ArrayAdapter
.
return 1
in getCount
function
@Override
public int getCount() { return 1; }
In the getView
function, inflate
the layout
of the activity
you need and do any customization before returning the view
.
@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. :-)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…