我对editText的可见性有疑问。在代码的开头,我将可见性设置为“消失”
editText.setVisibility(View.GONE);
这部分很好,它将我的editText设置为GONE。但是,如果我最小化我的应用程序,然后再次召唤它,则editText字段将变为可见。我试图用SharedPreferences保存View设置,但是我不知道如何正确执行。 我正在尝试使用以下方式保存视图:
myPrefs = getSharedPreferences("save steps", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = myPrefs.edit();
editor.putInt("visibility", editText.getVisibility());
editor.commit();
然后使用以下命令将数据加载回去:
editText.setVisibility(myPrefs.getInt("visibility", 0));
但是这种方法会使我的应用程序崩溃。也许有什么建议可以解决这个问题?
答案 0 :(得分:0)
原因很简单。当应用程序从后台返回时,活动会重新启动(重新创建edittext
)。
您可以使用savedInstanceState
或放置
@Override
public void onResume(){
super.onResume();
edittext.setVisibility(View.GONE);
}
编辑: 更改:
editText.setVisibility(myPrefs.getInt("visibility", 0));
到
editText.setVisibility(myPrefs.getInt("visibility", View.GONE));
我看不到完整的代码,也许应用崩溃是由空指针异常引起的。