简体   繁体   English

从Intent获取将TextView值设置为字符串时出现问题

[英]Problems setting TextView value to a String got from Intent

So... My problem is that when I try to send Intent putExtra , get it in the new class and then put it into a TextView it returns null... 所以...我的问题是,当我尝试发送Intent putExtra时,将其放入新类中,然后将其放入TextView中,它将返回null ...

Here is my code: 这是我的代码:

final String phonenum = text.getText().toString();

 Intent i = new Intent(sms_verification.this, sms_verification_two.class);
                        i.putExtra("num", num);
                        i.putExtra("phonenum" , phonenum);
                        startActivity(i);

And then the "sms_verification_two" 然后是“ sms_verification_two”

Button next;
EditText code;
TextView phone;

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

    next = (Button)findViewById(R.id.button);
    code = (EditText)findViewById(R.id.editText2);
    phone = (TextView)findViewById(R.id.textView);
    String phonenum = getIntent().getStringExtra("phonenum");
    String num = getIntent().getStringExtra("num");


    phone.setText(phonenum);

Make sure the data you put in the intent isn't null. 确保您放入意图的数据不为空。 The code itself looks fine to me. 代码本身对我来说很好。

public class MainActivity extends AppCompatActivity {

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

    Button goToNextActivity=(Button) findViewById(R.id.bSendID);
    final EditText etNum=(EditText) findViewById(R.id.etNumID);
    final EditText etPhoneum=(EditText) findViewById(R.id.etPhoneumID);

    goToNextActivity.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            String textFromEtNum=etNum.getText().toString();
            String textFromEtPhoneum=etPhoneum.getText().toString();

            Intent i = new Intent(getApplicationContext(), secondActivity.class);
            i.putExtra("num", textFromEtNum);
            i.putExtra("phonenum" , textFromEtPhoneum);
            startActivity(i);


        }
    });


}


}

second activity: 第二项活动:

public class secondActivity extends AppCompatActivity {

Button next;
EditText code;
TextView phone;

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

    next = (Button)findViewById(R.id.button);
    code = (EditText)findViewById(R.id.editText2);
    phone = (TextView)findViewById(R.id.textView);
    String phonenum = getIntent().getStringExtra("phonenum");
    String num = getIntent().getStringExtra("num");


    phone.setText(phonenum + " " + num);
}
}

First Activity 第一次活动

  **if your text variable TextView or EditText then write**      

 String phonenum = text.getText().toString();

Intent i = new Intent(sms_verification.this, sms_verification_two.class);
                    i.putExtra("nums", num);
                    i.putExtra("phonenums" , phonenum);
                    startActivity(i);

Second Activity 第二次活动

      public class sms_verification_two extends AppCompatActivity {

      Button next;
      EditText code;
      TextView phone;

     String phonenumss = "",numss = "";

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

   next = (Button)findViewById(R.id.button);
   code = (EditText)findViewById(R.id.editText2);
   phone = (TextView)findViewById(R.id.textView);

if(getIntent().getStringExtra("phonenums") != null){
   phonenumss = getIntent().getStringExtra("phonenums");
}
if(getIntent().getStringExtra("nums") != null){
   numss = getIntent().getStringExtra("nums");
}


    phone.setText(" " +phonenumss + " " + numss);

} } }}

Try using this approach on your sms_verification_two activity 尝试在您的sms_verification_two活动上使用此方法

String phonenum = "";
String num = "";

Bundle extras = getIntent().getExtras();
if (extras != null) {
    phonenum = extras.getString("phonenum");
    num = extras.getString("num");
}

phone.setText(phonenum + num);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM