tags:

views:

449

answers:

1

So this is related to a question I asked earlier. I am trying to display an alert using a specified layout. My layout is:


And the code to call and show the alert dialog is:

    Context mContext = getApplicationContext();

    AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
    // use a custom View defined in xml
    View view = LayoutInflater.from(mContext).inflate(R.layout.sell_dialog,      (ViewGroup) findViewById(R.id.layout_root));
    builder.setView(view);
    builder.setPositiveButton(android.R.string.ok, new OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {

            // do whatever you want with the input
        }
    });
    AlertDialog alertDialog = builder.create();

    alertDialog.show();

When I run it I get an error saying:

Uncaught handler: thread main exiting due to uncaught exception android.view.WindowManager$NadTokenException: Unable to add window -- token null is not for an application

I've looked through the android development site and can't figure it out. I think I'm just missing something obvious but the fix isn't jumping out at me. How can I get this alert dialog to display?

A: 

Do not use getApplicationContext(). That method is only available on a Context (e.g., Activity) -- use that Context for your AlertDialog.Builder.

Here is a sample project from one of my books that, among other things, shows an AlertDialog based off of a custom View.

CommonsWare
Worked like a charm. Thanks so much!
cmptrer
I am interested in the example of the Alert Dialog that uses a custom view, however your link has no such example.
Nemi
@Nemi: Whoops, you're right. Sorry about that. Try this one: http://github.com/commonsguy/cwac-colormixer
CommonsWare
Thanks. I am trying to create an AlertDialog with a custom view AND use the setMessage() string, but I find that if the message string is long enough to invoke the scrollbars in the internal listView that the layout gets screwed up. I was hoping your example would shed some insight, but it looks like I may have to write a complete custom dialog.
Nemi