您好,我有一个简单的问题,我有一个alertDialog,我希望它显示我在这里搜索过的两个按钮,但似乎之前的选项不再工作,已被弃用.
任何人都知道这样做的新方法你可以看到下面的代码不起作用.
Button share = (Button) findViewById(R.id.btn_share);
share.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// call some other methods before that I guess...
AlertDialog alertDialog = new AlertDialog.Builder(PasswActivity.this).create(); //Read Update
alertDialog.setTitle("Uprgade");
alertDialog.setMessage("Upgrade Text Here");
alertDialog.setButton("Upgrade", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
});
alertDialog.setButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
});
alertDialog.show(); //<-- See This!
}
});
Run Code Online (Sandbox Code Playgroud) 我需要在Alert Dialog中显示多行文本.如果我使用多个setMessage()方法,则只显示最后一个setMessage,如下所示.
final AlertDialog alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle("Statistics:");
alertDialog.setMessage("No. of attempts: " + counter);
alertDialog.setMessage("No. of wins: " + counterpos);
alertDialog.setMessage("No. of losses: " + counterneg);
Run Code Online (Sandbox Code Playgroud)
有没有办法在对话框中为每个这些创建一个新行?就像在System.print.out()中使用\n; 方法.
谢谢!
AlertDialog
当用户第一次使用我的应用程序时,我通常会设置某种方法,并解释如何使用该应用程序,并对他们刚刚下载的内容进行全面介绍.我通常也会从strings.xml
文件中加载我的字符串.
我想要做的是使我的字符串资源中的一个单词可以像网页上的超链接一样点击.基本上你AlertDialog
在字符串资源中有一个突出显示的单词,或者可能只是一个他们可以按的网址.我想我可以添加一个按钮,将它们带到网站,但我只是想知道在你的字符串资源中是否可以使用可点击的超链接.
这似乎应该很简单,但我在任何地方都找不到答案.我有一个Android应用程序,在后台执行网络任务.如果出现错误,我想显示错误对话框.当任务返回时,我不知道哪个Activity在前台.根据这篇文章,看起来我们不能使用应用程序上下文来显示一个对话框(事实上,如果我尝试的话,我确实会遇到崩溃).
那么我怎样才能获得当前活动的背景?同样,网络任务的接收器在Application上下文中运行,而不是在特定的Activity中运行.还有其他想法吗?
编辑:我应该澄清一下.如果我不是前台应用程序,我不想显示错误对话框.我只对我们的应用程序暂时处于前台的情况感兴趣.
我正在使用AlertDialog(请参阅下面的代码),并希望在每个文本之前放置一个图像.
例如,电子邮件图标然后文本"电子邮件",Facebook图标然后文本"Facebook"等.
使用以下代码,如何在每个文本值之前添加图标?
final CharSequence[] items = { "Email", "Facebook", "Twitter", "LinkedIn" };
AlertDialog.Builder builder = new AlertDialog.Builder(More.this);
builder.setTitle("Share Appliction");
builder.setItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int item) {
if (item == 0) {
} else if (item == 1) {
} else if (item == 2) {
} else if(item == 3) {
}
}
});
AlertDialog alert = builder.create();
alert.show();
Run Code Online (Sandbox Code Playgroud) 在我正在进行的学习过程中(这次是对话框),我发现这有效:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
Run Code Online (Sandbox Code Playgroud)
虽然以下方法不起作用(运行时因WindowManager $ BadTokenException而失败):
AlertDialog.Builder builder = new AlertDialog.Builder(this.getApplicationContext());
Run Code Online (Sandbox Code Playgroud)
我不明白为什么,因为AlertDialog.Builder 的构造函数被定义为接受Context作为参数,而不是Activity:
public AlertDialog.Builder(Context context)
构造函数使用此构建器的上下文及其创建的AlertDialog.
我错过了什么?
android android-context android-alertdialog android-activity
我正在尝试创建一个AlertDialog
但按钮没有显示.仅在Android 7.0中看到此问题:
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("This app needs location access");
builder.setMessage("Please grant location access so this app can detect beacons.");
builder.setPositiveButton(android.R.string.ok, null);
builder.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
@TargetApi(Build.VERSION_CODES.M)
public void onDismiss(final DialogInterface dialog) {
requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, PERMISSION_REQUEST_COARSE_LOCATION);
}
});
builder.show();
Run Code Online (Sandbox Code Playgroud)
android invisible button android-alertdialog android-7.0-nougat
在针对棒棒糖的材质主题优化应用时,我遇到了这个恼人的问题:
每当对话框按钮上有长文本时,总共不符合按钮栏宽度,文本就不会像以前的主题一样包含在多行中.相反,以下按钮被挤出对话框,无法访问(见下图).
截图:
到目前为止,我已经花了很多时间来处理这个问题,我可以在互联网上找到关于它的唯一主题:https: //code.google.com/p/android/issues/detail?id = 78302
所以我在那里接受建议并在这里提出这个问题..
我试过的是查看源(按钮是用maxLines = 2定义)并在buttonBarStyle和buttonBarButtonStyle上更改不同的参数但没有成功.
我正在寻找一个简单的样式解决方案,因此不想使用第三方库.
可能这只是一个模拟器问题?我不这么认为.
非常感谢帮助.提前致谢.
编辑: 要跟进,请参阅12月3日我自己的答案,这不是一个解决方案.
android button android-alertdialog material-design android-5.0-lollipop
我打开输入对话框的代码如下:
final AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Dialog Title");
alert.setMessage("Request information");
LayoutInflater factory = LayoutInflater.from(this);
final View textEntryView = factory.inflate(R.layout.edittextautotextlayout, null);
final EditText inputBox = (EditText) textEntryView.findViewById(R.id.my_et_layout);
alert.setView(inputBox);
Run Code Online (Sandbox Code Playgroud)
这很好用,除了我必须在软键盘出现之前点击文本输入行.
按照这里给出的建议我尝试插入:
inputBox.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
alert.getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
}
});
Run Code Online (Sandbox Code Playgroud)
但Eclipse对象"没有为AlertDialog.Builder类型定义方法getWindow()".
似乎setOnFocusChangeListener代码适用于AlertDialog对象,但不适用于AlertDialog.Builder.我应该如何修改我的代码以使软键盘自动显示.
我有一个AlertDialog
大约有10个控件(文本和TextView
)的盒子.这些控件是在ScrollView
与AlertDialog
,再加上我有2个按钮正面和负面的.我遇到的问题是当弹出软键盘时,两个按钮隐藏在键盘后面.
我在内部视图或对话框中寻找重绘功能.下面是我正在谈论的屏幕截图.
android resize view android-softkeyboard android-alertdialog