Java 如何防止文本视图中显示null?
对安卓来说非常陌生,我真的被这件事难住了 因此,我让我的Java 如何防止文本视图中显示null?,java,android,android-intent,null,textview,Java,Android,Android Intent,Null,Textview,对安卓来说非常陌生,我真的被这件事难住了 因此,我让我的main活动从第二个活动CallAnActivity接收一些字符串 我打算将字符串传递回主活动,它们将显示在TextView中。但是在我输入任何信息之前,我希望这个文本视图不包含任何内容,并且看起来是空白的 但是当第一次启动main活动时,文本视图displayMessageActivity显示多个null值。由于有三个字符串被发送,它只会将null这个词重复三次 main活动的代码为: //callAnActivityButton
main活动
从第二个活动CallAnActivity
接收一些字符串
我打算将字符串传递回主活动,它们将显示在TextView
中。但是在我输入任何信息之前,我希望这个文本视图不包含任何内容,并且看起来是空白的
但是当第一次启动main活动
时,文本视图displayMessageActivity
显示多个null
值。由于有三个字符串被发送,它只会将null这个词重复三次
main活动的代码为:
//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);
第二个活动的代码是,CallanaActivity
:
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语法错误,字符串emailAddress=intent.getExtras().getStringExtra(“emailAddress”)+“\n”;字符串emailSubject=intent.getExtras().getStringExtra(“emailSubject”)+“\n”;字符串emailBody=intent.getExtras().getStringExtra(“emailBody”);