如何检查所有字符串android中哪个字符串值是null还是空?

时间:2019-01-04 07:53:42

标签: java android string android-studio

我知道如何检查字符串值是否为null或为空?但是在这里我还有其他类型的问题,因此请阅读完整的问题。 现在,我的代码中总共有16个字符串

        String name = sharedPreferences.getString("name", "");
        String email = sharedPreferences.getString("email", "");
        String mobile = sharedPreferences.getString("mobile", "");
        String gender = sharedPreferences.getString("gender", "");
        String roll_no = sharedPreferences.getString("roll_no", "");
        String er_no = sharedPreferences.getString("enr_no", "");
        String address = sharedPreferences.getString("address", "");
        String state = sharedPreferences.getString("state", "");
        String city = sharedPreferences.getString("city", "");
        String pincode = sharedPreferences.getString("pincode", "");
        String alt_mobile = sharedPreferences.getString("alt_mobile", "");
        String program = sharedPreferences.getString("program", "");
        String image = sharedPreferences.getString("image","");
        String dob = sharedPreferences.getString("dob","");
        String course = sharedPreferences.getString("course", "");
        String year = sharedPreferences.getString("year", "");
        String sem = sharedPreferences.getString("sem","");
        String fname = sharedPreferences.getString("fname","");

并在相关的文本视图中设置所有值。

       textViewName.setText(name);
       textViewFname.setText(fname);
       textViewEmail.setText(email);
       textViewmobile.setText(mobile);
       textViewGender.setText(gender);
       textViewdob.setText(dob);
       textViewcourse.setText(course);
       textViewYear.setText(year);
       textViewSem.setText(sem);
       textViewErno.setText(er_no);
       textViewAdd.setText(address);
       textViewRollNo.setText(roll_no);
       textViewRemainAdd.setText(city + ", " + state + ", " + pincode);
       textViewAltMob.setText(alt_mobile);
       textViewPrograme.setText(program);

我不想一一检查所有字符串。

 if (Objects.requireNonNull(roll_no).equals("")){
        textViewRollNo.setText("Null Value");
    }else {
        textViewRollNo.setText(roll_no);
    }

我可以在一个循环中检查所有字符串,或者如果任何字符串为null,那么我可以在相关的textview中打印“空值” 消息。 我不知道我要问写问题,但是如果有任何解决方法,请共享一个代码来解决此问题。

2 个答案:

答案 0 :(得分:3)

那么,您可以将“默认值”设置为“空值”,除非您怀疑保存到sharedPreferences的字符串可能是空字符串?

String state = sharedPreferences.getString("state", "Null Value");

否则,您可能必须创建一个方法:

public String getCorrectValue(String value) {
    return value.isEmpty()? "Null Value" : value; 
}

答案 1 :(得分:0)

在科特林,应该是这样的:

val myMap = mapOf (
  "name" to textViewName,
  "email" to textViewEmail,
  ... )
for ((key, view) in myMap) {
  val value = sp.getString(key, "")
  view.text = if (value.isEmpty()) "Null value" else value
}