简体   繁体   中英

Creating Custom Dialog box (android example error?)

Been trying to create customer dialog box and I copied source code from android website. I worked my way round a few things now I'm really stuck. I don't know what LoginFragment is in the code:

...
public class start extends Activity{
Button buttonx;
final Context context = this;
LayoutInflater mInflater;

@Override
protected void onCreate (Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.menu);
}

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(context);
    // Get the layout inflater
    //LayoutInflater inflater = getActivity().getLayoutInflater();
    mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    // Inflate and set the layout for the dialog
    // Pass null as the parent view because its going in the dialog layout
    builder.setView(mInflater.inflate(R.layout.login, null))
            // Add action buttons
            .setPositiveButton(R.string.signin, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int id) {
                    // sign in the user ...
                }
            })
            .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {

                    LoginDialogFragment.this.getDialog().cancel();
                }
            });
    return builder.create();
}

When I //comment the line out the line out it says @Override is unnecessary which doesnt solve anything. Sorry for noob question

Take a look in this post on android developers, was useful to me many times.

http://developer.android.com/guide/topics/ui/dialogs.html

here is a simples example also:

http://www.mkyong.com/android/android-custom-dialog-example/

I guess you might have figured it out that LoginFragment is a fragment, so you have to create a new class and extend it with Fragment class. There you may put your code onCreateDialog() . And then follow the steps as how to show it.

You will use this code to show it -

DialogFragment newFragment = new LoginFragment();
newFragment.show(getSupportFragmentManager(), "login");

refer the link rochasdv has shared, you will get a better idea. Ask me if missing anything.

Create a layout file for the view you want to show in the dialog. Suppose you want a textview and a button in a dialog:

dialog_box.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<TextView
    android:id="@+id/textview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:textSize="17sp"
    android:layout_margin="20dp"/>

<Button
    android:id="@+id/button"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:textSize="17sp"
    android:layout_margin="20dp"/>

and in you java file:

    Dialog d = new Dialog(this);
    d.setTitle("No Places found");
    d.setContentView(R.layout.dialog_box);
    d.getWindow().getAttributes().width = WindowManager.LayoutParams.FILL_PARENT;
    d.show();

Good luck

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM