java - 为什么使用 Intent 后会出现此错误?

标签 java android

我收到错误“变量‘hour’可能尚未初始化”,并且在 hour、tenMin、min 和 ampm 上也收到相同的错误。我使用 Intent 从另一个类获取这些变量,但我不确定问题是什么。预先感谢您。

我尝试将第一类变量设置为final,但这没有任何作用。

这是我收到错误的地方:

Intent intent=getIntent();
String hour=intent.getStringExtra(hour);
String tenMin=intent.getStringExtra(tenMin);
String min=intent.getStringExtra(min);
String ampm=intent.getStringExtra(ampm);

这是我获取变量的地方:

EditText editText=findViewById(R.id.editText);
EditText editText2=findViewById(R.id.editText2);
EditText editText3=findViewById(R.id.editText3);
EditText editText4=findViewById(R.id.editText4);

String hour=editText.getText().toString();
String tenMin=editText2.getText().toString();
String min=editText3.getText().toString();
String ampm=editText4.getText().toString();

Intent intent=new Intent(NewAlarm.this,MainActivity.class);
intent.putExtra(hour,hour);
intent.putExtra(tenMin,tenMin);
intent.putExtra(min,min);
intent.putExtra(ampm,ampm);

最佳答案

我猜发生错误是因为您使用 String 对象作为键。但是,正如您现在的代码一样,这些对象可能为 null/未初始化。

我认为你应该按如下方式更改代码:

Intent intent=getIntent();
String hour=intent.getStringExtra("hour");
String tenMin=intent.getStringExtra("tenMin");
String min=intent.getStringExtra("min");
String ampm=intent.getStringExtra("ampm");

还有

intent.putExtra("hour",hour);
intent.putExtra("tenMin",tenMin);
intent.putExtra("min",min);
intent.putExtra("ampm",ampm);

这样,您将使用常量字符串作为键

关于java - 为什么使用 Intent 后会出现此错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56996940/

相关文章:

java - Android Java 服务器套接字无法连接

java - zxing条码扫描仪的android list 文件中需要添加什么?

android - 为什么我要在没有代码的情况下调用 super

java - Google ocr api for android(图片转文字)

java - 在 Selenium Webdriver 中,ExpectedCondition.elementToBeClickable 不会等到进度条消失

java - 什么是 Java 中的便捷方法?

java - 如何使用 dropbox 下载文件

java - 从单个按钮的多个 fragment 中提取数据

java - Glassfish+ActiveMQ MDB 处理消息延迟 120 秒

java - 可以将多种类型的对象放入一个数组中吗?