This is a real noob question I'm sure, but I am finding it quite perplexing.

Why an earth would you want to ever use intent.putExtra method to share information between classes in Android?

Let me explain. I am making my first Android app following the instructions from the developers guide (I am already at a moderate level with Java) and I am using some code that looks like this:

//Class field

```
//key holds string????? not fully understanding this...

public static final String EXTRA_MESSAGE = "self.anon.myfirstapp.MESSAGE";

//this method is activated by a button being pressed

public void sendMessage(View view) {

    Intent intent = new Intent(this,DisplayMessageActivity.class);
    EditText editText = (EditText) findViewById(R.id.edit_message);
    String message = editText.getText().toString();
    //puts string message inside the string EXTRA_MESSAGE - why????
    intent.putExtra(EXTRA_MESSAGE, message);
    startActivity(intent);
}

```

OK firstly I want to point out I see what is happening and for the most part how it works (am just confused by the field declaration = "myClassPath" why?)... 

BUT....

Surely it would be easier just to have a static field called:

```
public static String message;

```

then my method would look like this:

```
public void sendMessage(View view) {

    Intent intent = new Intent(this,DisplayMessageActivity.class);
    EditText editText = (EditText) findViewById(R.id.edit_message);
    message = editText.getText().toString();
    startActivity(intent);
}

```

Then when my class DisplayMessageActivity needs the string message he just calls for:

String message = myClass.message;

That seems so much more straight forward. What is with the creation of the new string EXTRA\_MESSAGE which just seems to hold the string message and why send it with the intent when my other class can access this info directly anyway -- and what does the field declaration with the "self.anon.myfirstapp.MESSAGE" mean? I can find no such folder or path leading to anything.