【问题标题】:Saving `editText` visibility保存`editText`可见性
【发布时间】:2015-06-23 06:38:25
【问题描述】:

我有几个editTexts 设置为在button 点击时可见,我还有另一个buttoneditText 设置为不可见。当我自己保存可见性代码时,代码工作正常,但是当我添加代码以将 editText 保存到 invisibe 时,我遇到了问题。我做错了什么?

    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();

    }
}

【问题讨论】:

  • 'visibility++' 和 'invisible' 有什么用处,并清楚地告诉我们你面临的问题。
  • 你有什么问题?
  • 哪个问题? @Gunaseelan
  • 问题是当我尝试保存用户将editText设置为不可见的次数时,代码不起作用。例如,用户单击按钮将 editText 设置为可见,该代码由 onResume 中的 EditTextvisible 代码保存,该代码正在运行,但是当我尝试保存用户将 edittext 设置为不可见的次数时,它没有被保存不可见();我在 onResume 中添加的代码。抱歉,如果有任何混淆@Gunaseelan

标签: android android-edittext sharedpreferences


【解决方案1】:

问题出在您的onResume()

@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();

    }

请检查此代码。

【讨论】:

  • 我知道我在onResume 中犯了一个错误,试图回忆editText 视图被设置为不可见的次数,但我不知道它是什么。
  • 您的循环运行了多长时间?
  • 循环运行了3次
  • 你可以试试不循环,那么问题会更清楚。
  • 我实际上发现了我做错了什么。我在循环中犯了一个错误。谢谢。
【解决方案2】:

首先你的问题不清楚。但是这里有问题

int inv = prefs.getInt(key 2, 1);

应该是

int inv = prefs.getInt(key2, 1);

【讨论】:

    猜你喜欢
    • 2015-09-14
    • 2019-10-14
    • 1970-01-01
    • 2015-08-27
    • 2020-02-25
    • 2017-10-31
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    相关资源
    最近更新 更多