如何在Android中创建弹出菜单
我尝试了以下代码如何在Android中创建弹出菜单,android,xml,user-interface,Android,Xml,User Interface,我尝试了以下代码 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.List
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();
}
}
**但看起来,我试图设置颜色和图标,但未能在对话框顶部设置图标和绿色解决我的问题,我没有创建任何xml,也没有做任何更改**
但是我想要像
您可以通过使用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>
<?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>
<activity android:name=".ActivityDialog"
android:theme="@style/styleActivityDialog">
</activity>
真的
@空的
真的
@空的
@android:彩色/透明
@android:style/Animation.Dialog
状态未指定|调整盘
@可绘制/背景活动对话框
可绘制的bg\U活动对话框:
<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>
<?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>
<activity android:name=".ActivityDialog"
android:theme="@style/styleActivityDialog">
</activity>
您在AndroidManifest.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>
<?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>
<activity android:name=".ActivityDialog"
android:theme="@style/styleActivityDialog">
</activity>
现在为您的活动创建任何布局ActivityDialog,它应该显示为一个对话框窗口您可以创建一个具有所需布局的活动,并将以下主题添加到AndroidManifest.xml中的活动标记中,以模拟对话框外观
android:theme="@android:style/Theme.Dialog"
如果这还不够,您可以使用继承并修改此特定主题以使用半透明、不暗淡的背景
<style name="MyTheme" parent="@android:style/Theme.Dialog">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
真的
@android:彩色/透明
假的
您可以使用AlertDialog或custom dialog。
我在我的个人博客中讨论过这个问题。如果你愿意的话,你可以访问我简陋的博客。。
提示:
活动
带有对话框
主题。都德,它只是在墙纸上显示相同的对话框,没有背景。它在标题侧显示对话框,向下显示箭头设置主题。对话框仍然会在窗口的顶部和底部留下一个深色边沟。嘿,如果你知道这一点,你能为我提供链接吗,因为使用充气i不知道如何阅读此博客,但如何设置绿色?这行的style.xml上显示错误,这行的manifest中也显示错误android:theme=“@style/myTheme.DialogBoxActivity”