Как проверить, какое строковое значение является нулевым или пустым во всей строке Android? - PullRequest
0 голосов
/ 04 января 2019

Я знаю, что, как проверить значение строки, является нулевым или пустым?Но здесь у меня есть другой тип проблемы, поэтому, пожалуйста, прочитайте полный вопрос.Теперь у меня всего 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, я могу напечатать "Null Value" сообщение в связанном textview.Я не знаю, что я спрашиваю, напишите вопрос, но если какой-либо способ сделать это, пожалуйста, поделитесь кодом, чтобы решить эту проблему.

Ответы [ 2 ]

0 голосов
/ 04 января 2019

в Котлине должно быть так:

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
}
0 голосов
/ 04 января 2019

Ну, вы могли бы сделать «значение по умолчанию» равным «Нулевое значение», если только вы не подозреваете, что строка, которую вы сохранили в sharedPreferences, могла быть пустой строкой?

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

В противном случае вам придется выбрать метод:

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