java - 如何防止 null 在 TextView 中显示?
问题描述
对 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);
}
推荐阅读
- tensorflow - 在多个设备上训练
- reactjs - 如何使用带有反应原生和反应导航的firebase电子邮件身份验证
- python - 散景多线图未显示
- r - 在此直方图中将计数更改为概率
- time-complexity - 确定内循环运行两次外循环变量时的时间复杂度
- windows - MongoDB更改默认端口并重启服务
- c - 如何使用指针摆脱复制矩阵值的四个循环?
- javascript - 将 Stackblitz HelloComponent 变成 Web 组件?
- javascript - 试图弹出引导模型但引导弹出模型不起作用?
- azure - Azure 使用 Terraform 将安全组与多个网络接口和负载均衡器与多个子网相关联