我在应用程序中有一组活动,其中大多数活动都有一个共同的图像。我希望在点击图像后会打开一个对话框,并在切换到另一个活动时执行一些任务。这对所有活动都是一样的。但它显示出一些错误。请帮我解决这个问题
这是活动的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;
}
}
答案 0 :(得分:0)
当您处于此上下文时,您的对话框已连接到特定上下文(活动),您的对话框将不再处于活动状态。在生活活动之前尝试关闭对话框。
答案 1 :(得分:0)
尝试使用AsyncTask并在onpreexecute()方法中,您可以启动对话框并传递上下文,并在doinbackgroung()方法中运行您自己的代码,然后在onpostexecute()方法中,您可以忽略对话框。
试试这篇文章: progressDialog in AsyncTask