DialogFragment è utilizzato per creare una finestra fluttuante sopra l’ attività.
È molto semplice da utilizzare,basta estendere la classe DialogFragment.
In questo esempio andiamo a chiamare il metodo show che utilizza FragmentManager per aggiungere DialogFragment all’Activity e andiamo ad eseguire l’override di onCreateDialog per creare una finestra di dialogo personalizzata:
Activity_main.xml
<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout
xmlns:android=”http://schemas.android.com/apk/res/android“
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:gravity=”center”
android:orientation=”vertical”>
<Button
android:id=”@+id/button”
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:text=”Open Dialog”/>
</LinearLayout>
MainActivity.java
package com.example.dialogFragment.activities;
import android.app.Activity;
import android.os.Bundle;
import com.example.dialogFragment.R;
import android.widget.*;
import android.view.*;
import android.app.*;
import android.content.*;
import android.os.*;
public class MainActivity extends Activity {
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showDiaolog();
}
});
}
public void showDiaolog(){
FragmentManager Fmanager=getFragmentManager();
MyDialogFragment myDialogFragment=new MyDialogFragment();
myDialogFragment.show(Fmanager, “MyDialogFragment”);
}
public static class MyDialogFragment extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder=new AlertDialog.Builder(getActivity());
builder.setTitle(“Dialog Fragment”);
builder.setMessage(“Want to exit”);
builder.setPositiveButton(“Ok”, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int i) {
Vibrator v = (Vibrator)getActivity() .getSystemService(Context.VIBRATOR_SERVICE);
v.vibrate(1000);
}
});
builder.setNegativeButton(“Cancel”, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int i) {
Vibrator v = (Vibrator)getActivity() .getSystemService(Context.VIBRATOR_SERVICE);
v.vibrate(500);
}
});
AlertDialog alertDialog=builder.create();
return alertDialog;
}
}
}
AndroidManifest.xml
<uses-permission android:name=”android.permission.VIBRATE“/>