使用Intent在活动之间传递文本

时间:2014-07-05 22:41:31

标签: java android android-intent

我很难在活动之间传递意图的额外内容。我是android的初学者,即使这个小东西真的很困扰我。

当我按下按钮时,我试图将输入到MyActivity.java中的EditText的信息传递给DisplayMessageActivity.java中的TextView。

这是MyActivity.java代码:

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);
}

这是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);
}

如果有人能告诉我发生了什么,那就太好了。谢谢!

2 个答案:

答案 0 :(得分:2)

DisplayMessageActivity正在创建新的TextView并设置传入的消息,但新的TextView不会显示在任何位置。

最有可能的是,您不是先创建新TextView,而是先setContentView,然后致电findViewById找到您的TextView

字符串传递代码都是正确的。

@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);
}

答案 1 :(得分:0)

dispalyActivity中,您可以使用此代码

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

而不是

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