33

For example

Intent intent = new Intent(this, SecondActivity.class);

eclipse error: The method setClass(Context, Class) in the type Intent is not applicable for the arguments (FirstActivity.ClickEvent, Class)

Intent intent = new Intent(FirstActivity.this, SecondActivity.class);

But that will be correct. Anybody can explain the difference between those two ? Thanks.

ngesh
  • 13,398
  • 4
  • 44
  • 60
user1325996
  • 333
  • 1
  • 3
  • 4
  • 1
    Refer the following link might help you understanding your doubt.. [LINK](http://stackoverflow.com/questions/1026973/android-whats-the-difference-between-the-various-methods-to-get-a-context) – Shankar Agarwal Apr 11 '12 at 08:18

4 Answers4

54

this refers to your current object. In your case you must have implemented the intent in an inner class ClickEvent, and thats what it points to.

Activity.this points to the instance of the Activity you are currently in.

Shubhayu
  • 13,402
  • 5
  • 33
  • 30
5

Shubhayu's answer is correct, but I just want to make clear for anyone who see this question that this and Activity.this is the same if you are using it directly in the activity.

This is answered here

Example:

@Override
protected void onResume() {
    super.onResume();

    Log.d("Test", this.toString());
    Log.d("Test", MainActivity.this.toString());
}

Result:

D/Test: com.example.app.MainActivity@e923587
D/Test: com.example.app.MainActivity@e923587
Samuel T.
  • 194
  • 3
  • 13
2

When you are pointing to this inside click event, it is pointing to the click listener.

Niko
  • 8,093
  • 5
  • 49
  • 85
-1

You are intent to transfer control from one activity to another and for that u ll have to specify an event basically and hence the error. this means the entire activity and firstactivity.this means an event occurring for example a a button clicked.........

varun257
  • 296
  • 2
  • 17