Я пытаюсь найти хороший метод для обработки диалогов в одном классе, чтобы я мог использовать их в любой деятельности, которую захочу.Самый чистый и хороший метод производительности будет лучшим.В настоящее время я веду диалоги в каждом упражнении, где выполняется основная работа.Если мне нужно изменить диалоговое окно или диалоговое окно, это затруднит поиск во всех моих классах.
[решено] ~ Обновление с кодом ниже.
Отлично выглядит.Надеюсь, у меня все хорошо.Любая оптимизация?
--- Код из диалогового класса
public class Dialogs extends Activity {
public static final int DIALOG_START = 0;
public static final int DIALOG_END = 1;
private Context mContext;
private int mDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = getApplicationContext();
mDialog = getIntent().getExtras().getInt("dialog");
showDialog(mDialog);
}
@Override
protected Dialog onCreateDialog(int id) {
Dialog dialog = null;
switch (id) {
case DIALOG_START:
Toast.makeText(mContext, "Test...", Toast.LENGTH_SHORT).show();
finish(); //works because toasts are somehow delayed
break;
case DIALOG_END:
// do something else but always finish(), e.g. after dialogbutton- click.
break;
}
return dialog;
}
}
--- Код в целевой операции (например, нажатие кнопки):
Intent dialogIntent = new Intent();
dialogIntent.setClass(Main.this, Dialogs.class);
dialogIntent.putExtra("dialog" , Dialogs.DIALOG_START);
startActivityForResult(dialogIntent, 0x0);
--- Код в манифесте:
<activity android:name=".Dialogs" android:label="@string/app_name"
android:configChanges="orientation|keyboardHidden"
android:theme="@style/dialog" />
--- Код в стилевом файле (values / style.xml):
<style name="dialog" parent="@android:style/Theme.Dialog">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>