Android Studio:使用Intents并在活动之间发送数据

时间:2017-11-24 18:45:16

标签: java android android-intent

我是Android Studio和Java的新手,目前我正在学习意图并将数据/文本从一个活动发送到另一个活动。关于我得到的第二项活动"无法解决符号'意图'"即使它在onCreate字段中。我要做的是为名字和姓氏提供两个文本字段,将文本从第一个活动发送到第二个活动,然后读取它,所有文本都用onButtonClick方法完成。我只是尝试做第一个名字,代码看起来像这个MainAcitivty

                    import android.content.Intent;
      import android.support.v7.app.AppCompatActivity;
      import android.os.Bundle;
      import android.view.View;
      import android.widget.EditText;
      import android.widget.TextView;

       public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);



}

    public void onButtonClicked(View view) {

   EditText nameText = (EditText)findViewById(R.id.firstName);
TextView messageText = (TextView) findViewById(R.id.messageTextView);

   if(nameText.getText().toString().trim().length() == 0){
    messageText.setText("text here");
   } else {

       String textForSecondAcitivity = "your name is: " + nameText.getText();
       Intent intent = new Intent(this, SecondActivity.class);
       intent.putExtra(Intent.EXTRA_TEXT, textForSecondAcitivity);
       startActivity(intent);

`

问题是第二个给我错误的活动"无法解析符号'意图'"。这是代码:

  import android.content.Intent;
  import android.support.v7.app.AppCompatActivity;
  import android.os.Bundle;
  import android.widget.TextView;

  public class SecondActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);

    Intent scIntent = getIntent();

    String messageText = intent.getStringExtra("EXTRA_TEXT");
    TextView messageView = (TextView)findViewById(R.id.textView);
    messageView.setText(messageText);

}

它不会在这里显示错误,但它在此行

       String messageText = intent.getStringExtra("EXTRA_TEXT");

我提前道歉,因为当然我搞砸了一些不好的事情,我是初学者,如果你对什么是最好的方式做了什么,我实际上想要实现的目标是免费的告诉我。

应用程序最终应该如下所示1.The first activity 1.The second one showing first name and last name

2 个答案:

答案 0 :(得分:0)

这里你做错了

       intent.putExtra(Intent.EXTRA_TEXT, textForSecondAcitivity);

而是使用此

       intent.putExtra("EXTRA_TEXT", textForSecondAcitivity);

答案 1 :(得分:0)

您没有名为intent的本地变量 将其替换为scIntent