簡體   English   中英

從Intent獲取將TextView值設置為字符串時出現問題

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

所以...我的問題是,當我嘗試發送Intent putExtra時,將其放入新類中,然后將其放入TextView中,它將返回null ...

這是我的代碼:

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

然后是“ 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);

確保您放入意圖的數據不為空。 代碼本身對我來說很好。

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


        }
    });


}


}

第二項活動:

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

第一次活動

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

第二次活動

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

}}

嘗試在您的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