点击imageview关闭dialog就报错?

napo815 2012-08-17 04:25:17
java代码:

import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;

public class MyDialog extends Dialog {

Context context;
public MyDialog(Context context) {
super(context);
// TODO Auto-generated constructor stub
this.context = context;
}
public MyDialog(Context context, int theme){
super(context, theme);
this.context = context;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.setContentView(R.layout.dialog);
ImageView imageview = (ImageView)findViewById(R.id.imageviewClose);
imageview.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {
dismiss();
}
});
}

public void dismiss(){
this.cancel();
}
}


log:

08-17 15:32:42.080: E/AndroidRuntime(1326): FATAL EXCEPTION: main
08-17 15:32:42.080: E/AndroidRuntime(1326): java.lang.StackOverflowError
08-17 15:32:42.080: E/AndroidRuntime(1326): at com.xiuman.mydialog.MyDialog.dismiss(MyDialog.java:37)
08-17 15:32:42.080: E/AndroidRuntime(1326): at android.app.Dialog.cancel(Dialog.java:951)
08-17 15:32:42.080: E/AndroidRuntime(1326): at com.xiuman.mydialog.MyDialog.dismiss(MyDialog.java:37)
08-17 15:32:42.080: E/AndroidRuntime(1326): at android.app.Dialog.cancel(Dialog.java:951)
08-17 15:32:42.080: E/AndroidRuntime(1326): at com.xiuman.mydialog.MyDialog.dismiss(MyDialog.java:37)
08-17 15:32:42.080: E/AndroidRuntime(1326): at android.app.Dialog.cancel(Dialog.java:951)
08-17 15:32:42.080: E/AndroidRuntime(1326): at com.xiuman.mydialog.MyDialog.dismiss(MyDialog.java:37)
08-17 15:32:42.080: E/AndroidRuntime(1326): at android.app.Dialog.cancel(Dialog.java:951)

...全文
99 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
napo815 2012-08-19
  • 打赏
  • 举报
回复
确实是,dismiss()是个非虚的方法,直接用就好,不用再覆写。
[Quote=引用 3 楼 的回复:]

这是内存溢出错误,应该是出现死循环或者无限递归了,错误中你的MyDialog.java:37不断的被执行,你看一下是不是哪里出项递归了
[/Quote]
chen_yanhua123 2012-08-18
  • 打赏
  • 举报
回复
这是内存溢出错误,应该是出现死循环或者无限递归了,错误中你的MyDialog.java:37不断的被执行,你看一下是不是哪里出项递归了
napo815 2012-08-17
  • 打赏
  • 举报
回复
我用的2.2啊
[Quote=引用 1 楼 的回复:]

用android 1.6以上试试看。
你用的1.5的??
[/Quote]
scbb 2012-08-17
  • 打赏
  • 举报
回复
用android 1.6以上试试看。
你用的1.5的??

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧