如何永久隐藏视图

3

请问有人可以告诉我如何永久隐藏视图吗?

我正在使用view.setVisibility(view.GONE);隐藏一个视图,但当重新打开应用程序时,我必须重新隐藏该视图。我希望当单击按钮时,视图永久隐藏,直到清除应用程序数据或卸载为止。谢谢!


请添加您的代码,以便我可以尝试解决您的问题。 - Arpit Patel
你目前的方法可能是让一个按钮切换视图所必须使用的。你也可以在布局XML中设置可见性,这可能会很有用。 - Tim Biegeleisen
4个回答

2

您需要通过在SharedPreference中创建隐藏和显示视图的标志来保存状态,根据该标志您需要将视图设置为GONE或VISIBLE。


1
当你隐藏 View 时,需要使用 SharedPreferences 存储一个值,在回到应用程序时从 SharedPreferences 获取该值,并根据该值使用相同的方法隐藏你的 View。请保留 HTML 标签。
SharedPreferences sp = getSharedPreferences("PREFS_NAME", Context.MODE_PRIVATE);
SharedPreferences.Editor et = sp.edit();
et.putBoolean("isViewHide", true);
et.commit();

从SharedPreferences获取值。
SharedPreferences sp = getSharedPreferences("PREFS_NAME", Context.MODE_PRIVATE);
boolean cb1 = sp.getBoolean("isViewHide", false);

参考自 SharedPreferences示例


0

你目前的方法是编程方法,如果你想要一个按钮来切换视图的可见性,那么这可能是你必须使用的方法。我所知道的唯一其他选项是从XML布局文件中禁用可见性:

<TextView
    android:visibility="gone"
    ... />

0

没有永久隐藏选项,但您可以通过以下方式实现

1.通过删除特定的视图(view)来实现

parent.removeViewAt(index);

parent.removeView(view);
  • 你必须将状态保存到永久存储中,以便于显示/隐藏视图,例如:

    共享首选项/数据库

  • 共享首选项示例

    1.在sharedPreferences中存储值:

    SharedPreferences preferences = this.getSharedPreferences("SoldiPreferences", Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = preferences.edit();
    editor.putBoolean("storevalue", false);
    editor.commit();
    

    2.从sharedPreferences获取值:

    SharedPreferences preferences = this.getSharedPreferences("SoldiPreferences", Context.MODE_PRIVATE);
    preferences.getBoolean("storevalue", false);
    
    if(preferences.getBoolean("storevalue", false))
    {
    view.setVisibility(View.VISIBLE);
    }
    else
    view.setVisibility(View.GONE);
    

    请问您如何将'SharedPreference'与'.setVisibility'一起使用? - Niezwm
    你能举一个例子吗?例如,当按钮被点击时,使用'view.setVisibility(view.GONE);'。 - Niezwm
    button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { imageview.setVisibility(View.GONE); SharedPreferences preferences = this.getSharedPreferences("SoldiPreferences", Context.MODE_PRIVATE);SharedPreferences.Editor editor = preferences.edit(); editor.putBoolean("storevalue", true); editor.commit(); } }); - Adnan Maqbool
    你还需要在创建时进行检查,以便下一次可以看到/消失。 - Adnan Maqbool

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接