Очень новичок в Android, и я честно озадачен этим.
Итак, мой MainActivity получает несколько строк от второго действия, CallAnActivity.
Я решил передать строки обратно в основное действие, и они отображаются в TextView. Но прежде чем я введу какую-либо информацию, я хотел бы, чтобы это текстовое представление ничего не содержало и выглядело пустым.
Но при первом запуске MainActivity текстовое представление displayMessageActivity отображает несколько значений null. Поскольку отправляются три строки, он просто трижды повторяет слово null.
Код для MainActivity:
//callAnActivityButton to open second activity of app
Button callAnActivityButton = findViewById(R.id.callActivityButton);
callAnActivityButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick( View v ) {
Intent intent = new Intent(MainActivity.this, CallAnActivity.class);
startActivity(intent);
}
});
Intent intent = getIntent();
String emailAddress = intent.getStringExtra("emailAddress") + "\n";
String emailSubject = intent.getStringExtra("emailSubject") + "\n";
String emailBody = intent.getStringExtra("emailBody");
//TextView to display text from second activity
TextView displayMessageText = findViewById(R.id.displayMessageText);
displayMessageText.setText(emailAddress + emailSubject + emailBody);
Код для второго действия, CallAnActivity, следующий:
public void sendText(){
String emailAddress = mEditTextAddress.getText().toString();
String emailSubject = mEditTextSubject.getText().toString();
String emailBody = mEditTextBody.getText().toString();
Intent intent = new Intent(CallAnActivity.this, MainActivity.class);
intent.putExtra("emailAddress", emailAddress);
intent.putExtra("emailSubject", emailSubject);
intent.putExtra("emailBody", emailBody);
startActivityForResult(intent, REQUEST_CODE);
}
@Override
protected void onCreate( Bundle savedInstanceState ) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_call_an);
mEditTextAddress = findViewById(R.id.emailAddressText);
mEditTextSubject = findViewById(R.id.emailSubjectText);
mEditTextBody = findViewById(R.id.emailBodyText);
Button sendTextButton = findViewById(R.id.sendMailButton);
sendTextButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick (View v) {
sendText();
}
});
}




Просто окружите свой вызов setText блоком if: -
if (intent.getStringExtra("emailAddress") != null) {
displayMessageText.setText(emailAddress + emailSubject + emailBody);
}
Измените свой контент, как показано ниже. Ваш синтаксис getExtra неверен
String emailAddress = intent.getExtras().getStringExtra("emailAddress") + "\n";
String emailSubject = intent.getExtras().getStringExtra("emailSubject") + "\n";
String emailBody = intent.getExtras().getStringExtra("emailBody");
Измените свой контент, как показано ниже. Ваш синтаксис getExtra неправильный String emailAddress = intent.getExtras (). GetStringExtra ("emailAddress") + "\ n"; Строка emailSubject = intent.getExtras (). GetStringExtra ("emailSubject") + "\ n"; Строка emailBody = intent.getExtras (). GetStringExtra ("emailBody");