title: Cannot make a static reference to the non-static method invalidate() from the type View MainActivity.java
body: <p>I'm getting an error in eclipse stating: "Cannot make a static reference to the non-static method invalidate() from the type View   MainActivity.java" and I'm not sure exactly what I can do to resolve this. How can I either make invalidate() static or make View non-static?</p>
  
  <p>SOURCE:</p>
  
  <pre><code>public class MainActivity extends Activity {
      private TextView textView;
      private Handler handler;
  
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          textView = (TextView) findViewById(R.id.TextView01);
          handler = new Handler();
      }
  
      private class DownloadWebPageTask extends AsyncTask&lt;String, Void, String&gt; {
          @Override
          protected String doInBackground(String... urls) {
             // perform HTTP client operation
          }
  
          @Override
          protected void onPostExecute(final String title) {
  
              handler.post(new Runnable() {
                      @Override
                      public void run() {
                          textView.setText(title);
                          View.invalidate();
                      }
              });
          }
      }
  
      public void onClick(View view) {
          DownloadWebPageTask task = new DownloadWebPageTask();
          task.execute(new String[] { "http://www.google.com" });
  
      }
  }
  </code></pre>
  
  <p>XML:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:orientation="vertical" &gt;
  
      &lt;Button
          android:id="@+id/readWebpage"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:onClick="onClick"
          android:text="Load Webpage" &gt;
      &lt;/Button&gt;
  
      &lt;TextView
          android:id="@+id/TextView01"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:text="Placeholder" &gt;
      &lt;/TextView&gt;
  
  &lt;/LinearLayout&gt; 
  </code></pre>
  
  <p>FIRST SOLUTION ATTEMPT:</p>
  
  <pre><code>    public class MainActivity extends Activity {
      private TextView textView;
     // String response;
      public interface Callback {
          void onModifiedTextView(String value);
      }
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          textView = (TextView) findViewById(R.id.TextView01);
      }
  
      public void onModifiedTextView(final String title) {
          runOnUiThread(new Runnable() {
              public void run() {
                  textView.setText(title);
                  textView.invalidate(); // not even necessary
              }
          });
      }
  
      public class DownloadWebPageTask extends AsyncTask&lt;String, Void, String&gt; {
          public DownloadWebPageTask(MainActivity mainActivity) {
              this.callback = mainActivity;
          }
  
          private MainActivity callback;
  
          public DownloadWebPageTask() {
              // TODO Auto-generated constructor stub
          }
  
          public DownloadWebPageTask(TextView textView) {
              // TODO Auto-generated constructor stub
          }
  
          @Override
          protected String doInBackground(String... urls) {
              String response = "";
  
              for (String url : urls) {
                  DefaultHttpClient client = new DefaultHttpClient();
                  HttpGet httpGet = new HttpGet(url);
                  try {
                       Document doc = Jsoup.connect("http://google.com")
                                  .userAgent("Mozilla")
                                  .get();
                      // get page title
                      String title = doc.title();
                      System.out.println("title : " + title);
  
                      // get all links
                      Elements links = doc.select("a[href]");
                      for (Element link : links) {
  
                          // get the value from href attribute
                          System.out.println("\nlink : " + link.attr("href"));
                          System.out.println("text : " + link.text());
  
                      }
  
                  } catch (IOException e) {
                      e.printStackTrace();
                  }
  
  
              }
              callback.onModifiedTextView(response);
              return response;
          }
  
          @Override
          protected void onPostExecute(final String title) {
              callback.onModifiedTextView(title);
          }  
      }
  
      public void onClick(View view) {
  
          DownloadWebPageTask task = new DownloadWebPageTask(this);
          task.execute(new String[] { "http://www.google.com" });
      }
  }
  </code></pre>