如何永久删除线性布局?

How to permanently remove a linearlayout?

在这个程序中,我想在按下 mButton 时删除 ll2 (LinearLayout)。也就是说,我不想让这个布局在我第二次输入 activity 时出现。当我按下按钮时,只要我在 activity 中,布局就会消失,但当我回到 activity 时,布局就在那里。

如何永久删除它?提前致谢!

LinearLayout ll,ll2;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);
    location_btn = (Button)findViewById(R.id.location_btn);
    menu_btn = (Button)findViewById(R.id.bt_menu);
    mButton = (Button) findViewById(R.id.buttone);
    mEdit = (EditText) findViewById(R.id.edittexte);
    ll2 = (LinearLayout)findViewById(R.id.llayout);

    mButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            number = mEdit.getText().toString();
            mEdit.setText("");
            ll2.setVisibility(View.GONE);
            ll2.removeAllViewsInLayout();
        }
    });
}

我的布局文件

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:id="@+id/llayout"
    android:visibility="visible">

    <EditText
        android:id="@+id/edittexte"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:ems="10"
        android:inputType="textPersonName"
        android:text="Name" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="SAVE"
        android:id="@+id/buttone"/>

</LinearLayout>

您可以尝试在 SharedPreferences 中保存一个布尔值... 例如 将布尔值保留为开头的 false

按下按钮后,删除视图 (LinearLayout),将布尔值更改为 true 并将其保存到 SharedPreferences...

在onCreate()中, 尝试

if(booleanisTrue) {
   ll2.setVisibility(View.GONE);
   ll2.removeAllViewsInLayout();
 }

只保留一个SharedPreference并保存之前按下按钮的状态。然后每次输入activity时,检查SharedPreference中存储的值,如果发现该按钮之前已经按下,则隐藏LinearLayout

LinearLayout ll,ll2;
SharedPreference pref; 

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);
    pref = getSharedPreferences("MyApplication", Activity.MODE_PRIVATE);

    location_btn = (Button)findViewById(R.id.location_btn);
    menu_btn = (Button)findViewById(R.id.bt_menu);
    mButton = (Button) findViewById(R.id.buttone);
    mEdit = (EditText) findViewById(R.id.edittexte);
    ll2 = (LinearLayout)findViewById(R.id.llayout);

    // Check the preference value when activity is launched each time and hide of the button was pressed before
    if(pref.getBoolean("ButtonPressed", false)) ll2.setVisibility(View.GONE);

    mButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            number = mEdit.getText().toString();
            mEdit.setText("");
            // Save the sate of the button pressed in the SharedPreference
            pref.edit().putBoolean("ButtonPressed", true).apply();

            ll2.setVisibility(View.GONE);
        }
    });
}