如何在Android中创建弹出菜单

Ron*_*hta 2 xml user-interface android

我尝试了以下代码

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.ListAdapter;

public class Custom_dialogActivity extends Activity {
/** Called when the activity is first created. */
String test[] = {"Security","Data Backup","Missing Device"};
ListAdapter adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setCancelable(true);
    builder.setTitle("My Title");
    builder.setInverseBackgroundForced(true);
    builder.setIcon(R.drawable.ic_launcher);
    builder.setItems(test, new OnClickListener() {  
        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub
            System.out.println("onClick " + which);

        }
    });
    builder.setAdapter(adapter, new OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub
            System.out.println("DialogInterface : " + which);
        }
    });
    EditText ed = new EditText(this);
    builder.setView(ed);
    builder.setPositiveButton("Yes",
            new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which)
                            {
                                dialog.dismiss();
                             }
                       });
                builder.setNegativeButton("No",
                        new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,int which)
                            {
                                dialog.dismiss();
                            }
                        });

                AlertDialog alert = builder.create();
                alert.show();
          }
}
Run Code Online (Sandbox Code Playgroud)

**但它看起来像,但我试图设置颜色和图标,但未能在对话框顶部的setIcon和颜色绿色解决我的问题,我didint创建任何xml并没有做任何更改**

在此输入图像描述

但我想要

在此输入图像描述

waq*_*lam 5

您可以通过实现这个AlertDialog.Builder,而不是使用标准的对话框,您需要夸大自己的XML重写视图.

更新

或使用对话框样式创建活动:

你的自定义风格:

<style name="styleActivityDialog" parent="@android:style/Theme.Light.NoTitleBar">
 <item name="android:windowNoTitle">true</item>
 <item name="android:windowFrame">@null</item>
 <item name="android:windowIsFloating">true</item>
 <item name="android:windowContentOverlay">@null</item>
 <item name="android:colorBackgroundCacheHint">@android:color/transparent</item>
 <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
 <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>

 <item name="android:windowBackground">@drawable/bg_activity_dialog</item>
</style>
Run Code Online (Sandbox Code Playgroud)

drawable bg_activity_dialog:

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">

      <stroke android:width="1dp" android:color="#C0C0C0" />
      <solid android:color="#FFFFFF" />
      <corners android:radius="5dp" />
      <padding android:top="5dp" android:bottom="5dp" android:left="5dp" 
         android:right="5dp"/>
    </shape>
Run Code Online (Sandbox Code Playgroud)

您在AndroidManifest.xml中的活动:

<activity android:name=".ActivityDialog"
     android:theme="@style/styleActivityDialog">
</activity>
Run Code Online (Sandbox Code Playgroud)

现在为您的活动ActivityDialog创建任何布局,它应该显示为对话框窗口