android - 配置更改后如何在android中保存膨胀的布局?

标签 android layout-inflater

我制作了一个应用程序,每次按下按钮时,我都会动态地向 LinearLayout 添加和删除 textView。

我的问题是,当屏幕方向改变时, Activity 重新启动,所有添加的 textView 都消失了。我不知道如何保留 LinearLayout 膨胀状态。

这是我初始化 View 和按钮的代码部分:

private LayoutInflater inflater;
private LinearLayout ll;
View view;
Button add;
Button delete;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    inflater = getLayoutInflater();
    ll = (LinearLayout)findViewById(R.id.ll);
    add = (Button)findViewById(R.id.bAdd);
    delete = (Button)findViewById(R.id.bDelete);

    add.setOnClickListener(this);
    delete.setOnClickListener(this); 

onClick 方法上,我添加或删除了 textViews:

 @Override
    public void onClick(View v) {
        switch (v.getId())
        {
            case R.id.bAdd:
            {
                view = inflater.inflate(R.layout.sublayout,ll,true);
                break;
            }
            case R.id.bDelete:
            {
                int childSize = ll.getChildCount();
                if(0 != childSize) {
                    ll.removeViewAt(childSize -1);
                }
                Log.i("InflateLayout", "childsize: " +childSize);
            }
        }
    }

最佳答案

当您的 Activity 由于配置更改而重新启动时,您可以通过保留 Fragment 来减轻重新初始化 Activity 的负担。此 fragment 可以包含对您要保留的有状态对象的引用。

当 Android 系统由于配置更改而关闭您的 Activity 时,您标记为保留的 Activity fragment 不会被销毁。您可以将此类 fragment 添加到您的 Activity 中以保留有状态对象。

在运行时配置更改期间在 fragment 中保留有状态对象:

1-扩展 Fragment 类并声明对有状态对象的引用。

2-创建 fragment 时调用 setRetainInstance(boolean)。

3-将 fragment 添加到您的 Activity 中。

4-在 Activity 重启时使用 FragmentManager 检索 fragment 。

更多细节是here

关于android - 配置更改后如何在android中保存膨胀的布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32292998/

相关文章:

java - Eclipse 没有在断点处停止/中断?

android json数据检索

java - 如何创建 LayoutInflater?

java - Android - inflatinc 类错误 - java.lang.NumberFormatException

java - 单击按钮后关闭警报对话框

java - Android - 事件队列 - 在首选项设置后执行

java - 如何使用 FirebaseRecyclerAdapter

android - 为什么 RecyclerView 没有游标适配器?

Android:将多个 .XML 和对象膨胀到一个 .XML

java - LayoutInflater 不返回新对象