我有这个代码来显示带有单选(无线电)选项的对话框.
AlertDialog ad = new AlertDialog.Builder(this)
.setCancelable(false)
.setIcon(R.drawable.alert_dialog_icon)
.setTitle(R.string.choose_one)
.setSingleChoiceItems(seq, pos,null)
.setPositiveButton( R.string.ok, new DialogInterface.OnClickListener() {
public void onClick( DialogInterface dialog, int whichButton)
{
// dialog dismissed
}
}).create();
Run Code Online (Sandbox Code Playgroud)
我如何获得所选的选择?
我有一个警告对话框,其中包含一个选项列表和两个按钮:一个OK
按钮和一个cancel
按钮.下面的代码显示了我是如何实现它的.
private final Dialog createListFile(final String[] fileList) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Compare with:");
builder.setSingleChoiceItems(fileList, -1, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
Log.d(TAG,"The wrong button was tapped: " + fileList[whichButton]);
}
});
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {}
});
return builder.create();
}
Run Code Online (Sandbox Code Playgroud)
我的目标是在点击按钮时获取所选单选按钮的名称OK
.我试图将字符串保存在变量中,但在内部类中,可以只访问最终变量.有没有办法避免使用最终变量来存储选定的单选按钮?
目前,当用户打开我的应用程序时,会AlertDialog
打开询问他们是否要升级到专业版.我需要添加一个CheckBox
,AlertDialog
这将使应用程序不再显示AlertDialog
用户打开应用程序时.
这就是我AlertDialog
现在所拥有的:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(" MY_TEXT");
builder.setMessage(" MY_TEXT ")
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Uri uri = Uri.parse("market://details?id=MY_APP_PACKAGE");
Intent intent = new Intent (Intent.ACTION_VIEW, uri);
startActivity(intent); }
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
}).show();
Run Code Online (Sandbox Code Playgroud)
如果有人能告诉我如何将添加CheckBox
到AlertDialog
,这将使应用不再显示AlertDialog
当用户打开应用程序,这将是巨大的.提前致谢!
我已经突破了这个问题.我需要做的是,AlertDialog
在我的Android应用程序中更改所有s 的样式- 对话框背景需要是white-ish,文本需要是black-ish.我尝试创建了很多样式,主题,并从代码,清单等应用,但没有成功,关于内部的文本颜色AlertDialog
.现在,我有最简单的代码,设置如下:
表现:
Run Code Online (Sandbox Code Playgroud)<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" >
styles.xml:
Run Code Online (Sandbox Code Playgroud)<style name="AppTheme" parent="AppBaseTheme"> <item name="android:alertDialogStyle">@style/DialogStyle</item> </style> <style name="DialogStyle" parent="@android:style/Theme.Dialog"> <!-- changing these background stuff works fine --> <item name="android:bottomBright">@android:color/white</item> <item name="android:bottomDark">@android:color/white</item> <item name="android:bottomMedium">@drawable/dialog_footer_bg</item> <item name="android:centerBright">@android:color/white</item> <item name="android:centerDark">@drawable/dialog_body_bg</item> <item name="android:centerMedium">@android:color/white</item> <item name="android:fullBright">@color/orange</item> <item name="android:fullDark">@color/orange</item> <item name="android:topBright">@color/green</item> <item name="android:topDark">@drawable/dialog_header_bg</item>
下面列出的项目不起作用(请阅读我在每个元素上面的评论):
Run Code Online (Sandbox Code Playgroud)<!-- panelBackground is not getting set to null, there is something squarish around it --> <item name="android:panelBackground">@null</item> <!-- Setting this textColor doesn't seem to have any effect at …
我创建了AlertDialog
一个AlertDialog.Builder
并设置了一些项目setItems()
.显示对话框但我看不到任何项目.我所看到的只是信息.
final CharSequence[] items = {"Red", "Green", "Blue"};
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity);
dialogBuilder.setMessage("Pick a color");
dialogBuilder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Do anything you want here
}
});
dialogBuilder.create().show();
Run Code Online (Sandbox Code Playgroud)
如果我设置了PositiveButton
,我可以看到那个按钮就好了.我也试过设置MultiChoiceItems
,SingleChoiceItems
但这些都不起作用.
我想删除自定义对话框上的黑色背景,如图所示.我确定黑色背景来自对话框,而不是应用程序的背景.
;
AlertDialog代码
public class MyAlertDialog extends AlertDialog {
public MyAlertDialog(Context context)
{
super(context);
}
public MyAlertDialog(Context context, int theme)
{ super(context, theme); }
}
Run Code Online (Sandbox Code Playgroud)
活动代码
public void showMyDialogOK(Context context, String s, DialogInterface.OnClickListener OkListener) {
MyAlertDialog myDialog = new MyAlertDialog(context, R.style.MyDialog2);
myDialog.setTitle(null);
myDialog.setMessage(s);
myDialog.setButton(DialogInterface.BUTTON_POSITIVE ,"Ok", OkListener);
myDialog.show();
}
Run Code Online (Sandbox Code Playgroud)
样式
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme" parent="@android:style/Theme.NoTitleBar.Fullscreen">
<item name="android:alertDialogStyle">@style/AlertDialog</item>
</style>
<style name="MyTheme2" parent="@android:style/Theme.Black">
<item name="android:alertDialogStyle">@style/AlertDialog</item>
</style>
<style name="AlertDialog">
<item name="android:fullDark">@null</item>
<item name="android:fullBright">@null</item>
<item name="android:topDark">@drawable/popup_top_dark</item>
<item name="android:topBright">@null</item>
<item name="android:centerBright">@null</item>
<item name="android:centerDark">@drawable/popup_center_dark</item>
<item …
Run Code Online (Sandbox Code Playgroud) 我正在尝试获得一段代码工作,它应该在显示时立即将EditText集中在AlertDialog中,然后自动打开软键盘.相反,它只会使屏幕变暗.
Builder builder = new Builder(this);
final EditText input = new EditText(this);
AlertDialog dialog = builder.create();
builder
.setTitle(R.string.dialog_title_addsubject)
.setMessage(R.string.dialog_addsubject)
.setView(input)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
String value = input.getText().toString();
if (input.getText().toString().trim().length() == 0) {
Toast.makeText(Main.this, R.string.input_empty, Toast.LENGTH_SHORT).show();
} else {
db.insertSubject(value);
getData();
}
}
})
.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
});
input.requestFocus();
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
dialog.show();
Run Code Online (Sandbox Code Playgroud)
我尝试过很多方法,但没有办法.我希望你们能在这里帮助我.提前致谢!
android focus android-softkeyboard android-edittext android-alertdialog
我试图将一些loooong文本放入AlertDialog.唯一的问题是默认字体大小真的太大了,所以我想让它变小.
以下是我尝试的所有解决方法及其问题.
解决方法1)使用TextView和myView.setTextSize(12);
final TextView myView = new TextView(getApplicationContext());
myView.setText(myLongText);
myView.setTextSize(12);
final AlertDialog d = new AlertDialog.Builder(context)
.setPositiveButton(android.R.string.ok, null)
.setTitle(myTitle)
.setView(myView)
.create();
Run Code Online (Sandbox Code Playgroud)
问题:布局不滚动
解决方法2)使TextView可滚动.
message.setMovementMethod(LinkMovementMethod.getInstance());
Run Code Online (Sandbox Code Playgroud)
问题:布局是滚动,bute没有"惯性"(不知道如何调用它......但我想你明白了.)
解决方法3)使用Scrollview.
这就是我要尝试的,但我无法相信没有更简单的解决方案......
我在AlertDialog中有一个EditText.看起来像这样.
看看它说tddjdjck的位置以及它是如何缩进的.这就是我想要的(我使用setPadding
左右设置为50),但我也希望它下面的蓝线也缩进.我怎么做?
我使用的代码如下:
final AlertDialog.Builder alert = new AlertDialog.Builder(thisActivity);
final EditText input = new EditText(thisActivity);
input.setSingleLine();
input.setPadding(50, 0, 50, 0);
alert.setTitle("by...");
alert.setMessage("enter the name of the person who did:");
alert.setView(input);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String value = input.getText().toString().trim();
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.cancel();
}
});
alert.show();
Run Code Online (Sandbox Code Playgroud)
谢谢