了解android上AlertDialog的创建
我刚接触安卓系统,只花了三天时间,主要是学习基础知识。在研究android警报对话框的创建时,我得到了以下代码:了解android上AlertDialog的创建,android,multithreading,android-alertdialog,android-dialogfragment,Android,Multithreading,Android Alertdialog,Android Dialogfragment,我刚接触安卓系统,只花了三天时间,主要是学习基础知识。在研究android警报对话框的创建时,我得到了以下代码: OnClickListener oclBtnOk = new OnClickListener() { @Override public void onClick(View v) { AlertDialog alertDialog = new AlertDialog.Builder(MainActivity
OnClickListener oclBtnOk = new OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();
alertDialog.setTitle("Title");
alertDialog.setMessage("Message");
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Add your code for the button here.
}
});
alertDialog.show();
}
};
但我还有一些事情要知道:
1-我第一次编写代码时使用的是AlertDialog-AlertDialog=new-AlertDialog.Builder(this.create()代码>改为AlertDialog AlertDialog=新建AlertDialog.Builder(MainActivity.this).create()代码>。第一段代码不需要编译,那么,到底有什么区别呢?这意味着对话框生成器是son还是与MAI活动有某种依赖关系?这意味着此对话框中的侦听器位于主活动内
2-这真的是创建简单警报对话框的正确方法吗?”因为在我的控制台中,我看到一条红线写着“ActivityManager:警告:活动未启动,其当前任务已被置于最前面”,并且正在研究他们建议使用AlertDialogFragment作为对话框的容器
我的最后一个问题有点复杂,但简单的回答是“是”,这将有助于我进行更深入的研究——android有某种EDT(事件调度线程),因为它是基于java的?我的意思是,要处理图形(如进度条),我应该将它们分割成另一个线程吗?回答第一个问题:
AlertDialog alertDialog = new AlertDialog.Builder(this).create();
代码在匿名类中运行,因此此
不引用从上下文
派生的对象。添加main活动。
使参数引用成为从Context
你的第二个问题:这真的是正确的方法吗。。。。?
这当然是一种可以接受的方式。还有其他的
您看到的有关将活动带到前台的消息与对话框无关。您可以通过在启动新调试会话之前退出应用程序来消除它
AlertDialog.Builder
需要上下文。代码位于OnClickListener
匿名子类中,而不是上下文
此
引用子类实例。要引用父活动类的this
,其范围为MainActivity。this
,活动为上下文
在你学习曲线的这一点上没关系。“警告:活动未启动,其当前任务已放在前面”无需担心-应用程序已在运行,只是放在前面,没有重新启动
Android不运行AWT,也没有这个名字的EDT。但是,主线程(也称为UI线程)也执行类似的操作