我得到一个奇怪的错误,上面写着“在范围内无法访问MainActivity类型的封闭实例”我不知道如何处理这个问题。该错误专门针对MainActivity.this
。会发生什么,我呼吁其他类在后台工作,我需要在某一点显示一个对话框,以中断用户替换某些文件,进行更新。我怎么能通过另一个类来设置对话,就像我正在做的那样,或者是否有另一种方式可能是广播接收器?
这是我尝试在另一个类中激活对话框
public class UnZip
{
public static void startzip(String pathzip, String folderpath)
{
File zipFile = new File(pathzip);
Log.d(TAG, "INSDIE of startzip path is " + zipFile);
if(isZipValid(zipFile))
{
MainActivity.mProgressDialog = new ProgressDialog(MainActivity.this);
MainActivity.mProgressDialog.setMessage("Please Wait while updating...");
MainActivity.mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
MainActivity.mProgressDialog.setCancelable(false);
MainActivity.mProgressDialog.show();
Log.d(TAG, "Made it to StartZIp");
new UnZipTask().execute(pathzip, folderpath);
}
else
{
Log.d(TAG, "Made it to StartZIp FALSE");
Toast.makeText(MainActivity.this, "Zip related error", Toast.LENGTH_SHORT).show();
}
}
}
答案 0 :(得分:2)
MainActivity。这只适用于您在MainActivity的内部类中。如果您在MainActivity本身,请使用此功能。如果你完全在另一个班级,你需要传递一个上下文的实例(通常是你所在的活动)并传递它。