[コントロール]AlertDialogダイアログボックス


import java.lang.reflect.Field;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class mainActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button btn = (Button) findViewById(R.id.btn);

        final CharSequence[] items = { "Red", "Green", "Blue" };

        btn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                new AlertDialog.Builder(mainActivity.this)
                        .setTitle(" ")
                        //  
                        .setIcon(R.drawable.icon)
                        //  
                        //  setItems、setSingleChoiceItems、setMultiChoiceItems 
                        .setMessage(" ")
                        // view XML 
                        final EditText et = new EditText(this);
                        .setView(et)
                        //  LIST
                        .setItems(items, new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                                    int which) {
                                Toast.makeText(getApplicationContext(),
                                        items[which], Toast.LENGTH_SHORT)
                                        .show();
                            }
                        })
                        //  LIST  -1 
                        .setSingleChoiceItems(items, -1,
                                new DialogInterface.OnClickListener() {

                                    @Override
                                    public void onClick(DialogInterface dialog,
                                            int which) {
                                        Toast.makeText(getApplicationContext(),
                                                items[which],
                                                Toast.LENGTH_SHORT).show();
                                    }
                                })
                        //  LIST   NULL  
                        .setMultiChoiceItems(
                                items,
                                null,
                                new DialogInterface.OnMultiChoiceClickListener() {
                                    @Override
                                    public void onClick(DialogInterface dialog,
                                            int which, boolean isChecked) {
                                    }
                                })
                        .setPositiveButton(" ",
                                new DialogInterface.OnClickListener() {
                                    @Override
                                    public void onClick(DialogInterface dialog,
                                            int which) {
                                        try {
                                            Field f = dialog
                                                    .getClass()
                                                    .getSuperclass()
                                                    .getDeclaredField(
                                                            "mShowing");
                                            f.setAccessible(true);
                                            f.set(dialog, false);
                                            //  
                                        }

                                        catch(Exception e) {
                                            // TODO Auto-generated catch block
                                            e.printStackTrace();
                                        }
                                    }
                                })
                        .setNegativeButton(" ",
                                new DialogInterface.OnClickListener() {
                                    @Override
                                    public void onClick(DialogInterface dialog,
                                            int which) {
                                        try {
                                            Field f = dialog
                                                    .getClass()
                                                    .getSuperclass()
                                                    .getDeclaredField(
                                                            "mShowing");
                                            f.setAccessible(true);
                                            f.set(dialog, true);
                                            //  
                                        }
                                        catch(Exception e) {
                                            // TODO Auto-generated catch block
                                            e.printStackTrace();
                                        }
                                    }
                                }).show();
            }
        });
    }
}

本文はブロガーのオリジナル文章で、ブロガーの許可を得ずに転載してはならない.