如何保存editText可见性状态(View.GONE)?

时间:2019-05-28 20:04:59

标签: java android sharedpreferences visibility onsaveinstancestate

我对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)); 

但是这种方法会使我的应用程序崩溃。也许有什么建议可以解决这个问题?

1 个答案:

答案 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)); 

我看不到完整的代码,也许应用崩溃是由空指针异常引起的。