user3808555
user3808555

Reputation: 31

Passing text between activities with an Intent

I'm having some difficulty getting the intent's extras to be passed between activities. I'm a beginner at android and even this small thing is really bothering me.

I'm trying to pass the information entered into the EditText in MyActivity.java to the TextView in DisplayMessageActivity.java when I press a button.

Here's the MyActivity.java code:

public class MyActivity extends Activity {
public final static String EXTRA_MESSAGE = "myfirstapp.example.com.myapplication.MESSAGE";

public void sendMessage(View view) {
    Intent message_send = new Intent(this, DisplayMessageActivity.class);
    EditText edit_message = (EditText) findViewById(R.id.edit_message);
    String message = edit_message.getText().toString();
    message_send.putExtra(EXTRA_MESSAGE, message);
    MyActivity.this.startActivity(message_send);
}

And here's the code for DisplayMessageActivity.java:

 public class DisplayMessageActivity extends Activity {

@Overide
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Intent message_send = getIntent();
    String message = message_send.getStringExtra(MyActivity.EXTRA_MESSAGE);
    TextView textView = new TextView(this);
    textView.setTextSize(40);
    textView.setText(message);
    setContentView(R.layout.activity_display_message);
}

If anyone could tell me what is happening, that would be great. Thanks!

Upvotes: 0

Views: 85

Answers (2)

vishal jangid
vishal jangid

Reputation: 3025

In dispalyActivity you can use this code

Bundle b = getIntent().getExtra();
String message = b.getString("message name");

instead of

Intent message_send = getIntent(); 
String message = message_send.getStringExtra(MyActivity.EXTRA_MESSAGE);

Upvotes: 0

j__m
j__m

Reputation: 9625

DisplayMessageActivity is creating a new TextView and setting the passed-in message, but the new TextView is not displayed anywhere.

most likely, instead of creating a new TextView, you'll want to setContentView first, and then call findViewById to locate your TextView.

the string passing code is all correct.

@Overide
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_display_message);
    Intent message_send = getIntent();
    String message = message_send.getStringExtra(MyActivity.EXTRA_MESSAGE);
    TextView textView = (TextView) findViewById(R.id.my_text_view);
    textView.setTextSize(40);
    textView.setText(message);
}

Upvotes: 2

Related Questions