title: Error: is not an enclosing class
body: <p>I have a problem with my project.
  I have 2 classes: MainActivity and Insert.
  I give me a error in “Insert” class.
   dialog = new ProgressDialog(MainActivity.this);
   my error is “is not an enclosing class”.
   please help me</p>
  
  <p>CODE Insert:</p>
  
  <pre><code>public class Insert extends AsyncTask&lt;String, Void, Boolean&gt; {
  
  ProgressDialog dialog;
  
  @Override
  protected void onPreExecute() {
      super.onPreExecute();
      dialog = new ProgressDialog(MainActivity.this); //error is here
      dialog.setMessage("Inserting details, please wait");
      dialog.setTitle("Connecting... ");
      dialog.show();
      dialog.setCancelable(false);
  }
  
  @Override
  protected Boolean doInBackground(String... urls) {
  
  
      try {
  
          List&lt;NameValuePair&gt; insert = new ArrayList&lt;NameValuePair&gt;();
          insert.add(new BasicNameValuePair("name", nameStr));
          insert.add(new BasicNameValuePair("country", countryStr));
          insert.add(new BasicNameValuePair("email", emailStr));
          insert.add(new BasicNameValuePair("hobbies", hobbiesStr));
  
  
          HttpClient httpClient = new DefaultHttpClient();
          HttpPost httpPost = new HttpPost(
                  "http://bookcompr.netne.net/input.php");
          httpPost.setEntity(new UrlEncodedFormEntity(insert));
  
          HttpResponse response = httpClient.execute(httpPost);
  
          HttpEntity entity = response.getEntity();
  
          return true;
  
  
      } catch (IOException e) {
          e.printStackTrace();
  
      }
  
  
      return false;
  }
  
  protected void onPostExecute(Boolean result) {
      dialog.cancel();
  
      AlertDialog.Builder ac = new AlertDialog.Builder(MainActivity.this);//error is here
  
      ac.setTitle("Result");
      ac.setMessage("Details Successfully Inserted");
      ac.setCancelable(true);
  
      ac.setPositiveButton(
              "Ok",
              new DialogInterface.OnClickListener() {
                  public void onClick(DialogInterface dialog, int id) {
                      dialog.cancel();
  
                  }
              });
  
      AlertDialog alert = ac.create();
      alert.show();
  }
  </code></pre>
  
  <p>}</p>
  
  <p>CODE MainActivity</p>
  
  <pre><code>public class MainActivity extends AppCompatActivity {
  
  EditText name, country, email, hobbies;
  
  Button insert;
  
  String nameStr, countryStr, emailStr, hobbiesStr;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
  
      name = (EditText) findViewById(R.id.name);
      country = (EditText) findViewById(R.id.country);
      email = (EditText) findViewById(R.id.email);
      hobbies = (EditText) findViewById(R.id.hobbies);
  
      insert = (Button) findViewById(R.id.insert);
  
      insert.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
  
              nameStr = name.getText().toString();
              countryStr = country.getText().toString();
              emailStr = email.getText().toString();
              hobbiesStr = hobbies.getText().toString();
  
              new Insert().execute();
          }
      });
  }
  
  public class Insert extends AsyncTask&lt;String, Void, Boolean&gt; {
  
      ProgressDialog dialog;
  
      @Override
      protected void onPreExecute() {
          super.onPreExecute();
          dialog = new ProgressDialog(MainActivity.this);
          dialog.setMessage("Inserting details, please wait");
          dialog.setTitle("Connecting... ");
          dialog.show();
          dialog.setCancelable(false);
      }
  
      @Override
      protected Boolean doInBackground(String... urls) {
  
  
          try {
  
              List&lt;NameValuePair&gt; insert = new ArrayList&lt;NameValuePair&gt;();
              insert.add(new BasicNameValuePair("name", nameStr));
              insert.add(new BasicNameValuePair("country", countryStr));
              insert.add(new BasicNameValuePair("email", emailStr));
              insert.add(new BasicNameValuePair("hobbies", hobbiesStr));
  
  
              HttpClient httpClient = new DefaultHttpClient();
              HttpPost httpPost = new HttpPost(
                      "http://bookcompr.netne.net/input.php"); // link to connect to database
              httpPost.setEntity(new UrlEncodedFormEntity(insert));
  
              HttpResponse response = httpClient.execute(httpPost);
  
              HttpEntity entity = response.getEntity();
  
              return true;
  
  
          } catch (IOException e) {
              e.printStackTrace();
  
          }
  
  
          return false;
      }
  
      protected void onPostExecute(Boolean result) {
          dialog.cancel();
  
          AlertDialog.Builder ac = new AlertDialog.Builder(MainActivity.this);
          ac.setTitle("Result");
          ac.setMessage("Details Successfully Inserted");
          ac.setCancelable(true);
  
          ac.setPositiveButton(
                  "Ok",
                  new DialogInterface.OnClickListener() {
                      public void onClick(DialogInterface dialog, int id) {
                          dialog.cancel();
  
                      }
                  });
  
          AlertDialog alert = ac.create();
          alert.show();
      }
  
  }
  </code></pre>
  
  <p>}</p>