【问题标题】:How to hide views for always如何始终隐藏视图
【发布时间】:2017-07-07 04:44:28
【问题描述】:

谁能告诉我如何永远隐藏视图?

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

【问题讨论】:

  • 添加您的代码,以便我尝试解决您的问题。
  • 您当前的方法可能是您必须使用的让按钮切换视图的方法。您还可以从可能有用的布局 XML 中设置可见性。

标签: java android views


【解决方案1】:

您需要通过在SharedPreference 中创建隐藏和取消隐藏视图的标志来保存状态,并且基于该标志您需要 GONE 或 VISIBLE View。

【讨论】:

    【解决方案2】:

    你必须使用SharedPreferences,当你隐藏View然后在SharedPreferences中存储一个值,当你回到应用程序时从SharedPreferences获取值并根据该值隐藏你的@987654326 @ 通过您使用的相同方法。

    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 example的参考

    【讨论】:

      【解决方案3】:

      没有永久隐藏的选项,但你可以通过这种方式实现

      1.删除具体的view by

      parent.removeViewAt(index);
      
      parent.removeView(view);
      
      1. 您必须将状态保存到show/hide view 上的永久存储中,例如

        共享偏好/数据库

      共享偏好示例

      1.将值存储在sharedPrefernces:

      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'
      • 你能举个例子,用按钮点击'view.setVisibility(view.GONE);'
      • 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(); } });
      • 您还必须在 create 上签入,以便下一次可见/消失。
      【解决方案4】:

      您当前的方法是编程方法,如果您想要一个按钮来切换视图的可见性,您可能必须使用这种方法。我知道的唯一其他选择是禁用 XML 布局文件的可见性:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-08-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多