I created Alert dialogbox and its not showing when i click on button.And its crashing app. My code is below. What is wrong in my code?. Please Help me!!
backBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
TestHopeQueue.this);
// set title
alertDialogBuilder.setTitle("Remove Download");
// set dialog message
alertDialogBuilder
.setMessage("Click yes to exit!")
.setCancelable(false)
.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
for (int k = 0; k < trlist.size(); k++) {
if (trlist.get(k) != null) {
View v13 = linearlayout
.getChildAt(k);
TextProgressBar pr = (TextProgressBar) v13
.findViewById(R.id.progressBar);
if (pr.getProgress() < 100) {
trlist.get(k).interrupt();
trlist.set(k, null);
ViewVideoDelete(k);
Button btnDownButton = (Button) v13
.findViewById(R.id.btnDownload);
btnDownButton
.setVisibility(View.VISIBLE);
pr.setProgress(0);
pr.invalidate();
pr.setText("" + 0 + "%");
Button btnDelete = (Button) v13
.findViewById(R.id.btnDelete);
btnDelete
.setVisibility(View.GONE);
downloadqueuelist.remove(0);
if (k % 2 == 0) {
v13.setBackgroundColor(Color
.parseColor("#f8f8ff"));
// convertView.setBackgroundResource(R.drawable.whitebackground);
} else {
v13.setBackgroundColor(Color
.parseColor("#DCDCDC"));
// convertView.setBackgroundResource(R.drawable.greybackground);
}
}
} else {
TestHopeQueue.this.finish();
}
}
}
})
.setNegativeButton("No",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
// if this button is clicked, just close
// the dialog box and do nothing
dialog.cancel();
}
});
//alertDialog.show();
for (int k = 0; k < trlist.size(); k++) {
if (trlist.get(k)!= null) {
Log.v("log_tag"," Alert Dialog ");
break;
} else {
TestHopeQueue.this.finish();
}
}
AlertDialog alertDialog = new AlertDialog.Builder(TestHopeQueue.this).create();
//AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
});
And I get Error in below::
04-13 12:38:58.112: E/WindowManager(576): Activity com.example.testhopequeue.TestHopeQueue has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@40585268 that was originally added here
04-13 12:38:58.112: E/WindowManager(576): android.view.WindowLeaked: Activity com.example.testhopequeue.TestHopeQueue has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@40585268 that was originally added here
04-13 12:38:58.112: E/WindowManager(576): at android.view.ViewRoot.<init>(ViewRoot.java:258)
04-13 12:38:58.112: E/WindowManager(576): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
04-13 12:38:58.112: E/WindowManager(576): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
04-13 12:38:58.112: E/WindowManager(576): at android.view.Window$LocalWindowManager.addView(Window.java:424)
04-13 12:38:58.112: E/WindowManager(576): at android.app.Dialog.show(Dialog.java:241)
04-13 12:38:58.112: E/WindowManager(576): at com.example.testhopequeue.TestHopeQueue$1.onClick(TestHopeQueue.java:180)
04-13 12:38:58.112: E/WindowManager(576): at android.view.View.performClick(View.java:2485)
04-13 12:38:58.112: E/WindowManager(576): at android.view.View$PerformClick.run(View.java:9080)
04-13 12:38:58.112: E/WindowManager(576): at android.os.Handler.handleCallback(Handler.java:587)
04-13 12:38:58.112: E/WindowManager(576): at android.os.Handler.dispatchMessage(Handler.java:92)
04-13 12:38:58.112: E/WindowManager(576): at android.os.Looper.loop(Looper.java:130)
04-13 12:38:58.112: E/WindowManager(576): at android.app.ActivityThread.main(ActivityThread.java:3683)
04-13 12:38:58.112: E/WindowManager(576): at java.lang.reflect.Method.invokeNative(Native Method)
04-13 12:38:58.112: E/WindowManager(576): at java.lang.reflect.Method.invoke(Method.java:507)
04-13 12:38:58.112: E/WindowManager(576): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-13 12:38:58.112: E/WindowManager(576): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-13 12:38:58.112: E/WindowManager(576): at dalvik.system.NativeStart.main(Native Method)
I found in your code that you are finishing your activity by TestHopeQueue.this.finish();
in else part and then trying to show alert dialog in the activity that is already finished.
So, you are getting this error message.
you can call this method directly on button click like this.
backBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertBoxShow();
}
// AlertBoxShow() method definition here
public void AlertBoxShow(){
AlertDialog.Builder alt_bld = new AlertDialog.Builder(this);
alt_bld.setMessage("Do you want to close this application ?")
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
finish();
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// Action for 'NO' Button
dialog.cancel();
}
});
AlertDialog alert = alt_bld.create();
// Title for AlertDialog
alert.setTitle("AlertDialogExample");
// Icon for AlertDialog
alert.setIcon(R.drawable.ic_launcher);
alert.show();
}
}
同时,你要执行两次行动onclick
按钮1)显示dailog 2)内环你完成你的活动,这显示对话框,导致错误之前完成您的活动。
Try This Using This Code You Get Alert Dialog..
==================================main Activity.java
package com.example.sample;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
Button b1;
final Context context = this;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b1 = (Button) findViewById(R.id.b1);
b1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
ShowDialog();
}
});
}
public void ShowDialog()
{
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
context);
// set title
alertDialogBuilder.setTitle("Your Title");
// set dialog message
alertDialogBuilder
.setMessage("Click yes to exit!")
.setCancelable(false)
.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
// if this button is clicked, close
// current activity
MainActivity.this.finish();
}
})
.setNegativeButton("No",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
// if this button is clicked, just close
// the dialog box and do nothing
dialog.cancel();
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.