我想做一个dialog fragment ,询问“你确定吗?” 回答“是/否”。 我已经看了文档 ,它真的很详细,遍布各处,解释如何使高级对话框,但没有完整的代码,使一个简单的“你好世界”类对话框。 大多数教程使用不推荐使用的对话框系统。 官方的博客似乎不必要的复杂和难以理解。 那么,创build和显示一个真正基本的警报对话框的最简单的方法是什么? 奖励积分,如果它使用的支持库。
我正在与Android应用程序显示networking错误。 NetErrorPage.java package exp.app; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class NetErrorPage extends Activity implements OnClickListener { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.neterrorlayout); Button reload=(Button)findViewById(R.id.btnReload); reload.setOnClickListener(this); showInfoMessageDialog("Please check your network connection","Network Alert"); } public […]
我想在我的应用程序中显示一个警告对话框。 我正在使用片段。 我尝试了下面的代码来做到这一点: AlertDialog ad = new AlertDialog.Builder(context) .create(); ad.setCancelable(false); ad.setTitle(title); ad.setMessage(message); ad.setButton(context.getString(R.string.ok_text), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); ad.show(); 但它崩溃了,在logcat中的错误是: 04-18 15:23:01.770:E / AndroidRuntime(9424):android.view.WindowManager $ BadTokenException:无法添加窗口 – 标记null不适用于应用程序 从互联网上我知道崩溃是由于上下文问题。 我已经给了上下文 context = this.getActivity().getApplicationContext(); 我不知道这是什么问题。 有谁能够帮助我?
在Android应用程序中,我想在AlertDialog中显示自定义列表视图。 我怎样才能做到这一点?
我正在build立一个应用程序中遇到这个问题。 请忽略所有的devise缺陷和缺乏最佳实践方法,这纯粹是为了展示我无法解决的一个例子。 我有DialogFragment ,它使用AlertDialog.Builder.setView() DialogFragment返回一个具有自定义View的基本AlertDialog 。 如果此View具有特定的大小要求,那么如何让Dialog正确调整其大小以显示自定义View中的所有内容? 这是我一直在使用的示例代码: package com.test.test; import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.app.DialogFragment; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Paint.Style; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.WindowManager; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.FrameLayout; import android.widget.LinearLayout; import […]
从我的主要活动中,我需要调用一个内部类和类中的方法,我需要显示AlertDialg,并按下确定button时closures它,并转发到谷歌播放购买。 在大多数情况下,事情是完美的,但是对于less数用户来说,它正在builder.show()上崩溃,我可以从崩溃日志中看到"android.view.WindowManager$BadTokenException:无法添加窗口”。 请build议。 我的代码非常像这样: public class classname1 extends Activity{ public void onCreate(Bundle savedInstanceState) { this.requestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); setContentView(R.layout.<view>); //call the <className1> class to execute } private class classNamename2 extends AsyncTask<String, Void, String>{ protected String doInBackground(String… params) { } protected void onPostExecute(String result){ if(page.contains("error")) { AlertDialog.Builder builder = new AlertDialog.Builder(classname1.this); builder.setCancelable(true); builder.setMessage(""); builder.setInverseBackgroundForced(true); builder.setNeutralButton("Ok",new DialogInterface.OnClickListener() { public […]
在AlertDialog的Android文档中 ,它给出了在AlertDialog中设置自定义视图的以下指令和示例: 如果你想显示一个更复杂的视图,请查看名为“body”的FrameLayout并添加你的视图: FrameLayout fl = (FrameLayout) findViewById(R.id.body); fl.add(myView, new LayoutParams(FILL_PARENT, WRAP_CONTENT)); 首先,很明显add()是一个拼写错误,意思是addView() 。 我对使用R.id.body的第一行感到困惑。 它似乎是AlertDialog的身体元素…但我不能只是在我的代码B / C中input,它会给编译错误。 R.id.body在哪里被定义或分配? 这是我的代码。 我试图在构build器上使用setView(findViewById(R.layout.whatever) ,但它不起作用,我假设是因为我没有手动膨胀它? AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Title") .setCancelable(false) .setPositiveButton("Go", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int id) { EditText textBox = (EditText) findViewById(R.id.textbox); doStuff(); } }); FrameLayout f1 = (FrameLayout)findViewById(R.id.body /*CURRENTLY an […]
我有一个对话框与EditTextinput。 当我点击对话框上的“是”button,它将validationinput,然后closures对话框。 但是,如果input错误,我想保留在同一个对话框中。 每次不pipeinput什么,当我点击“否”button时,对话框应该自动closures。 我怎样才能禁用这个? 顺便说一句,我用PositiveButton和NegativeButton作为对话框上的button。
我的活动正在尝试创建一个需要上下文作为参数的AlertDialog。 如果使用: AlertDialog.Builder builder = new AlertDialog.Builder(this); 然而,我不愿意使用“this”作为上下文,因为即使在像屏幕旋转这样简单的事情中,Activity被破坏并被重新创建时,由于内存泄漏的可能性。 从Android开发者博客上的相关文章 : 有两种简单的方法可以避免上下文相关的内存泄漏。 最明显的就是避免脱离自己范围之外的背景。 上面的例子显示了一个静态引用的情况,但是内部类和它们对外部类的隐式引用可能同样危险。 第二个解决方案是使用应用程序上下文。 只要您的应用程序处于活动状态,并且不依赖于活动的生命周期,此上下文就会生效。 如果您打算保留需要上下文的长寿命对象,请记住应用程序对象。 你可以通过调用Context.getApplicationContext()或者Activity.getApplication()来获得它。 但是对于AlertDialog() getApplicationContext()或getApplication()都不能作为Context使用,因为它引发异常: “无法添加窗口 – 标记null不适用于应用程序” 每个参考: 1,2,3等 那么,这是否真的被认为是一个“错误”,因为我们正式建议使用Activity.getApplication() ,但它不起到广告作用? 吉姆