Android 保存“编辑文本”可见性
我有两个editText设置为单击按钮可见,还有一个按钮将editText设置为不可见。当我单独保存可见性代码时,代码工作正常,但当我添加代码以将editText保存到invisibe时,我遇到了问题。我做错了什么Android 保存“编辑文本”可见性,android,android-edittext,sharedpreferences,Android,Android Edittext,Sharedpreferences,我有两个editText设置为单击按钮可见,还有一个按钮将editText设置为不可见。当我单独保存可见性代码时,代码工作正常,但当我添加代码以将editText保存到invisibe时,我遇到了问题。我做错了什么 public void EditTextVisible() { visibility++; if(e1.getVisibility() == View.INVISIBLE){ e1.setVisibility(View.VISIBLE);
public void EditTextVisible() {
visibility++;
if(e1.getVisibility() == View.INVISIBLE){
e1.setVisibility(View.VISIBLE);
} else if(e2.getVisibility() == View.INVISIBLE){
e2.setVisibility(View.VISIBLE);
}
}
public void invisible(){
invisible++;
if(e2.getVisibility() == View.VISIBLE)
{
e2.setVisibility(View.INVISIBLE);
}
else if(e1.getVisibility() == View.VISIBLE){
e1.setVisibility(View.INVISIBLE);
}
}
@Override
protected void onPause() {
super.onPause();
SharedPreferences.Editor editor = getPreferences(0).edit();
editor.putInt(key1, visibility);//This code is working by itself.
editor.putInt(key2, invisible); //When I add this code to save the editText to invisible nothing is being saved on exit.
editor.commit();
}
@Override
protected void onResume() {
super.onResume();
SharedPreferences prefs = getPreferences(0);
int val = prefs.getInt(key1, 0);
for (int i = 0; i < val; i++)
EditTextVisible();
prefs.getInt(key2, 0);
int inv = prefs.getInt(key2, 1);
for (int a = 0; a < inv; a++)
invisible();
}
}
首先,你的问题不清楚,但这里有点不对劲
int inv = prefs.getInt(key 2, 1);
应该是
int inv = prefs.getInt(key2, 1);
这个问题在你的简历上
请检查此代码。是否有“可见性++”和“不可见”的用法,并清楚地告诉我们您面临的问题。您的问题是什么?哪个问题@GunaseElan问题是,当我试图保存用户将editText设置为不可见的次数时,代码不起作用。例如,用户单击按钮将editText设置为可见,这是由EditTextvisible代码在onResume中保存的,代码正在工作,但当我尝试保存用户将editText设置为不可见的次数时,invisibe没有保存它;我在简历中添加的代码。抱歉,如果@gunaseElan出现任何混乱,我知道我在onResume中犯了一个错误,试图回忆editText视图设置为不可见的时间,但我无法确定它是什么。循环运行了多少时间?循环运行了3次。您可以尝试不使用循环,那问题就更清楚了。我真的知道我做错了什么。我在循环中犯了一个错误。谢谢
@Override
protected void onResume() {
super.onResume();
SharedPreferences prefs = getPreferences(0);
int val = prefs.getInt(key1, 0);
for (int i = 0; i < val; i++)
EditTextVisible();
int inv = prefs.getInt(key2, 0);
for (int a = 0; a < inv; a++)
invisible();
}