0

我在一个应用程序中有一组活动,其中大多数活动都有一个共同的图像。我希望在单击图像后会打开一个对话框并执行一些任务作为切换到另一个活动。这对所有活动都是一样的。但它显示了一些错误。请帮我解决这个问题

这是活动的onclick事件

ImageView imgMenu = (ImageView) findViewById(R.id.imgMenu);
    imgMenu.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
         Intent intent = FeatureMenu.ShowMenu(getApplicationContext());
            if (intent != null) {
                startActivity(intent);
            }
        }
    });

这是一个处理常用功能的静态类:

public class FeatureMenu {
public static Intent intent;
public static Intent ShowMenu(final Context mcontext) {

    Dialog d = new Dialog(mcontext);
    d.requestWindowFeature(Window.FEATURE_NO_TITLE);
    d.setContentView(R.layout.menu_layout);
    ImageView abc = (ImageView) d
            .findViewById(R.id.abc);
    abc.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
             intent=new Intent(mcontext,
                    xyz.class);

        }
    });
    d.show();
    return intent;

}
}
4

2 回答 2

0

当您生活在此上下文中时,您的对话框连接到特定上下文(活动),您的对话框不再处于活动状态。在进行活动之前尝试关闭对话框。

于 2013-09-15T07:52:25.973 回答
0

尝试使用 AsyncTask,在 onpreexecute() 方法中,您可以启动对话框并传递上下文,在 doinbackgroung() 方法中,您可以运行自己的代码,然后在 onpostexecute() 方法中,您可以关闭对话框。

试试这个帖子: AsyncTask 中的 progressDialog

于 2013-09-15T08:15:52.653 回答