我正在尝试显示一个警告对话框,如果单击检查帐户时缺少帐户信息.我在Eclipse中new AlertDialog.Builder(this)说错了the constructor AlertDialog.Builder(new View OnClickListener(){}) is undefined.如果我将它添加到活动的onCreate,代码工作正常.
checkButton.setOnClickListener(new OnClickListener() {
public void onClick(View Arg0){
String AccNum = null, Store = null;
final SharedPreferences settings = getSharedPreferences(CHECK_PREFERENCES, MODE_PRIVATE);
if (settings.contains("Account") == true){
AccNum = (settings.getString("Account", "default"));
Store = (settings.getString("Store", "default"));
}
if (AccNum.length() < 7) {
AlertDialog alert = new AlertDialog.Builder(this).create();
alert.setTitle("Account Information missing!");
alert.setMessage("Enter now? ");
alert.setButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
startActivity(new Intent(CheckOrder.this, GoToSetup.class));
}
});
alert.setButton2("No", new DialogInterface.OnClickListener() …Run Code Online (Sandbox Code Playgroud) 实际上,当用户点击编辑文本时,我正在显示一个带有ok取消按钮的弹出窗口.我的问题是,当用户双击编辑文本时,会弹出两个弹出窗口.因此,如果用户从弹出窗口中选择了任何值,则其第二个弹出窗口仍保留在那里.
我不知道如何处理它.
任何帮助将不胜感激.提前致谢.这是我的布局
<EditText
android:id="@+id/date_control"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/bg_edit_text"
android:focusableInTouchMode="false"
android:inputType="none"
android:editable="false"
android:clickable="true"
android:layout_marginRight="5dp" />
Run Code Online (Sandbox Code Playgroud)
我的java类调用控制器
datePicker = (EditText) findView(R.id.date_control);
datePicker.setOnClickListener(myControllerClass);
Run Code Online (Sandbox Code Playgroud)
它的控制器
MyDialog myDialog = new myDialog(activity, "Select Date",
date, DateTimeDialog.DATE_PICKER);
myDialog.show();
Run Code Online (Sandbox Code Playgroud) 我有一个对话框显示,我希望在按下后退按钮时要求用户确认他要在取消生效前取消对话框.这是我的代码:
dialog.setOnCancelListener(new OnCancelListener(){
@Override
public void onCancel(DialogInterface arg0) {
AlertDialog.Builder builder = new AlertDialog.Builder(dialog.getContext());
builder.setMessage( "Are you sure you want to cancel?")
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface diag, int id) {
diag.dismiss();
dialog.dismiss();
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface diag, int id) {
diag.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
dialog.show();
Run Code Online (Sandbox Code Playgroud)
问题是,当按下后退按钮时,我的当前对话框被取消,然后显示我的"确认消息".在用户确认对话框之前,如何确保不取消对话框?
我正在膨胀到alertbuilder的布局有两个按钮.但我无法为此设置onClickListner.这个例外正在发生.请看我的代码.自定义alertDialogue的XML.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_common"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<EditText
android:id="@+id/user_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="7dp"
android:singleLine="true" >
<requestFocus />
</EditText>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Search" />
<Button
android:id="@+id/cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Cancel" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
AlertDialog.Builder alert = new AlertDialog.Builder(Myclass.this);
alert.setTitle("title");
alert.setIcon(iconImage);
LayoutInflater inflater = (LayoutInflater)MyClass.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.search_dialogue, null, false);
user_input= (EditText)view.findViewById(R.id.user_text);
Button cancel = (Button) findViewById(R.id.cancel);
cancel.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
}
}); …Run Code Online (Sandbox Code Playgroud) 我有一个AlertDialog可以取消(通过后退按钮或在对话框外单击).如果对话框被取消,我需要撤消一些更改,所以我需要控制它何时被取消.
我试图创建自己的子类AlertDialog来覆盖一些函数(我想我应该覆盖onContextMenuClosed,我想做一些测试来找到正确的函数).
我创建了自己的Builder扩展AlertDialog.Builder来创建我的对话框,我想要覆盖该create()函数.我检查了AlertDialog.Builder->create()代码,它使用变量AlertController.AlertParamsP来获取一些所需的数据,但是该变量是私有的,我无法从我的构建器访问它,因此我无法创建对话框.
如何AlertDialog取消是否可以控制?使用setCancellable(false)不是一个选项,我希望用户能够取消它.
谢谢!
我想实现AlertDialog.Builder所选项目点击事件.以下是我到目前为止所尝试的内容.我对Android很新,我不知道如何访问该事件.如何为列表中的每个项目实现click事件?
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
public class MakeCallAlertDialog {
public static AlertDialog.Builder getAlertDialog(String strArray[],
String strTitle, Activity activity) {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(activity);
alertDialogBuilder.setTitle(strTitle);
alertDialogBuilder.setItems(strArray, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int arg) {
// TODO Auto-generated method stub
}
});
return alertDialogBuilder;
}
}
Run Code Online (Sandbox Code Playgroud) 我正在弹出框中列出用户的tumblr博客.所有这些都发生在Handler中.这是代码:
private class PicHandler extends Handler{
Context c;
String name;
JumblrClient client;
public PicHandler(Context context, String n, JumblrClient cl){
c=context;
name = n;
client = cl;
}
public void handleMessage(Message msg)
{
final String[] cs = preferences.getString("allBlogs", "").split(",");
for (String s : cs){
Log.d("DrawLog", s); //logs the blogs correctly
}
ListAdapter adapter = new ArrayAdapter<String>(
getApplicationContext(), android.R.layout.simple_selectable_list_item, cs);
Log.d("DrawLog", (String) adapter.getItem(0)); //logs the first blog correctlys
new AlertDialog.Builder(c)
.setTitle("Choose blog")
.setMessage("Choose the blog to publish the .gif")
.setAdapter(adapter, new DialogInterface.OnClickListener() …Run Code Online (Sandbox Code Playgroud) 每当我按下后退按钮,显示dilog构建器时,我想完成()应用程序.
我有以下代码
private void displaydialog()
{
final LayoutInflater inflator = LayoutInflater.from(this);
final View settingsview = inflator.inflate(R.layout.nointernet, null);
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setIcon(R.drawable.reminderalert);
builder.setTitle("No Network...");
builder.setView(settingsview);
builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS));
dialog.dismiss();
}
});
builder.create().show();
}
Run Code Online (Sandbox Code Playgroud)
我不知道在哪里插入OnKeylistener和Key事件.有人可以指导我何时/如何插入监听器?
谢谢!
正在使用自定义对话框来接收用户输入,然后使用getter方法将这些值传递给另一个活动.
但是当我将值传递给一个将字符串值输出到CSV文件的方法时shipName,analystName等等,这些值在文件中显示为空," "尽管我在对话框中输入了值.
我在调试菜单的表情窗口看着字符串值调试的问题,shipName和analystName而值表达式窗口从不更新.
我从中收集到输入传递的方法i不正确.
有谁知道为什么输出的值是空的?
这是使用的对话框类:
package ie.gmi.computing;
import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.renderscript.Sampler;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MyMessageDialog {
private Context context;
private EditText shipText, scientistNameText , scientistEmailText , volumeText , colourText ;
private String shipString, scientistNameString , scientistEmailString , volumeString , colourString ;
public AlertDialog displayMessage(Context context, String title, …Run Code Online (Sandbox Code Playgroud) 我试图将我的AlterDialog更新为新的android.support.v7.app.AlertDialog,只需更改:
import android.app.AlertDialog
Run Code Online (Sandbox Code Playgroud)
至
import android.support.v7.app.AlertDialog
Run Code Online (Sandbox Code Playgroud)
新的AlertDialogs现在在Pre-Lollipop上显示为Material样式,但对话窗口更宽(在Tablet上测试).这不是一个错误吗?应该是android.support.v7.app.AlertDialog与android.app.AlertDialog相同的宽度?
android android-appcompat android-alertdialog material-design