【发布时间】:2016-10-25 17:48:17
【问题描述】:
首先,我在这里阅读了与我的标题相同的问题;
所以请把问题看一遍。我正在开发一个应用程序,它从共享首选项文件中获取值并将这些值放在EditText 字段中,为此我使用了setText() 方法。我在 android studio 中不断收到此警告。我意识到这只是一个警告,但我想知道
- 是什么原因造成的?
- 如何解决这个问题?
代码如下:
EditText sil_key = (EditText)findViewById(R.id.silent_key);
EditText gen_key = (EditText)findViewById(R.id.general_key);
EditText vib_key = (EditText)findViewById(R.id.vibrate_key);
SharedPreferences sharedPreferences = getSharedPreferences(getString(R.string.preference_file_key),MODE_PRIVATE);
sil_key.setText(sharedPreferences.getString("silent","silent"));
gen_key.setText(sharedPreferences.getString("general","general"));
vib_key.setText(sharedPreferences.getString("vibrate","vibrate"));
最后我得到了与getText() 和EditText 一起使用的相同警告;为什么?以及如何纠正?
【问题讨论】:
-
请注意。 Studio 有一个“合同”系统。如果函数可以返回 null,则该变量的一个可能值为 null。然后,如果您请求对可以为空的变量进行操作,则会出现警告,同样会发生,如果您使用返回布尔值的函数,对无法保存它的变量进行操作,或者对变量执行操作未初始化等...这些警告是一个单一的“合同->事件”系统,可帮助开发人员解决常见的小错误。
-
@Ironman 您标记的问题没有答案,我在发布此问题之前已经看到了它
-
@Bonatti 谢谢,但是有什么办法可以解决吗?
-
是的。您可以确保合同有效(如
if(sil_key!=null){...stuffs...})或删除带有@SuppressWarnings("The warning type")的警告标志
标签: android nullpointerexception android-edittext sharedpreferences