点击imageview关闭dialog就报错?

napo815 2012-08-17 03:36:35
java代码:

package com.xiuman.mydialog;

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)

...全文
118 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
napo815 2012-08-17
  • 打赏
  • 举报
回复
果然可以,谢啦
[Quote=引用 3 楼 的回复:]

把你写的dismiss去掉,这个方法不用重写,直接调用即可。
[/Quote]
liangzuoting 2012-08-17
  • 打赏
  • 举报
回复
把你写的dismiss去掉,这个方法不用重写,直接调用即可。
napo815 2012-08-17
  • 打赏
  • 举报
回复
那要怎么做?

[Quote=引用 1 楼 的回复:]

dismiss是Dialog的非虚方法吧?为什么要覆盖它?
[/Quote]
liangzuoting 2012-08-17
  • 打赏
  • 举报
回复
dismiss是Dialog的非虚方法吧?为什么要覆盖它?

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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