为什么我在getString()上得到一个空指针异常?

时间:2019-07-13 19:43:12

标签: java android android-studio nullpointerexception

我正在尝试从另一个活动中获取数据,以便在按下另一个活动上的按钮后可以使该按钮可见,但是我在db.Courses.find().pretty() { "_id" : ObjectId("5d29c3a58212eda90db024c4"), "courseID" : "1", "courseName" : "C#" } { "_id" : ObjectId("5d29c3a58212eda90db024c5"), "courseID" : "2", "courseName" : "Java" } { "_id" : ObjectId("5d29c3a58212eda90db024c6"), "courseID" : "3", "courseName" : "JavaScript" } 上得到了一个NullPointerException

getString()

alarmFrequency.java

value=getIntent().getExtras().getString("buttonStatus");
if(value.equals("Visible")){
    button.setVisibility(View.VISIBLE);
    alarmLayout.setVisibility(View.VISIBLE);
}

所以应该使用字符串Intent intent=new Intent(alarmFrequency.this,MainActivity.class); intent.putExtra("buttonStatus","Visible"); 使按钮可见,而且我也不知道为什么会出错。

2 个答案:

答案 0 :(得分:1)

请注意,如果getIntent().getExtras()中未设置其他功能,则可以返回null,您应该检查是否为此键buttonStatus设置了其他功能。

intent

中设置额外功能的代码
 Intent intent = new Intent();
 intent.putExtra("buttonStatus", "active");

如果您要创建一个开始活动并与之一起传递数据的意图 它

 Intent intent = new Intent(this, AnotherActivity.class);
 intent.putExtra("buttonStatus", "active");
 startActivity(intent);

intent

获取额外内容的代码
 Bundle bundle = getIntent().getExtras();
 if (bundle != null) {
       String status = (String) bundle.get("buttonStatus");  //bundle.get can return null for buttonStatus if not set
  }

答案 1 :(得分:0)

尝试使用特定类型的getStringExtra(..)