我在警告对话框中创建了一个可链接的文本,并使TextView可单击,如下所示:
final SpannableString noRecords = new SpannableString("Sorry, no records could be found, please try again, or contact us at 867-5309");
Linkify.addLinks(noRecords);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("No Records Found")
.setMessage(noRecords)
.setCancelable(true)
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
((TextView)alert.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance());
这样可行,但是当它被点击时会在logcat中产生错误:
08-19 19:40:55.753:ERROR / WindowManager(5886):活动 com.blah.MainActivity已经泄露窗口 com.android.internal.policy.impl.PhoneWindow$DecorView@405d7010那个 最初被添加到这里08-19 19:40:55.753: 错误/ WindowManager(5886):android.view.WindowLeaked:Activity com.blah.MainActivity已经泄露窗口 com.android.internal.policy.impl.PhoneWindow$DecorView@405d7010那个 最初是在这里添加的
我认为这是因为在点击链接之前不会解除警报。 有没有办法解决?我不想抛出任何错误。
答案 0 :(得分:1)
如果要在销毁活动之前释放对话框,可以覆盖onDestroy()事件
@Override
public void onDestroy(){
//Your dialog disposal code here
super.onDestroy(); //Make sure you include this at the end.
}
希望有所帮助