Android,我怎样才能获得最后一个活动状态?

时间:2013-12-26 11:37:56

标签: android android-layout sharedpreferences activity-state

我有one.xml个文件:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/scrollView">
<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="10dp"
    android:orientation="vertical"
    android:id="@+id/lineerLayout">
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/sp_info"
        android:id="@+id/label_sp_info"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/label_x" />
    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="numberDecimal"
        android:id="@+id/spx"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/label_y" />
    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="numberDecimal"
        android:id="@+id/spy" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_label_continue"
        android:id="@+id/continue_aligment" />
</LinearLayout>
</ScrollView>

然后我有two.xml这样的文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/nPointlinearLayout"
>
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/nPointInfo" />
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/labelnPointX"/>
<EditText
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:inputType="numberDecimal"
    android:id="@+id/nPointX" />
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/labelnPointY" />
<EditText
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:inputType="numberDecimal"
    android:ems="10"
    android:id="@+id/nPointY" />
</LinearLayout>

当我使用inflater单击按钮时,我可以在one.xml中添加two.xml。没有问题。但是当我点击手机后退按钮或退出所有活动然后重新进入时,添加视图就不见了。 我怎样才能获得最后一个活动状态?所有ID的?

这是我点击按钮的代码。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.one);
    continueAligment=(Button)findViewById(R.id.continue_aligment);
    lineerLayout=(LinearLayout)findViewById(R.id.lineerLayout);
    inflater=getLayoutInflater();
    continueAligment.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            view=inflater.inflate(R.layout.two,lineerLayout,false);
            nPointLineerLayout=(LinearLayout)view.findViewById(
               R.id.nPointlinearLayout);
            lineerLayout.addView(nPointLineerLayout,
            lineerLayout.indexOfChild(continueAligment));
        }
    });
}

1 个答案:

答案 0 :(得分:1)

在共享偏好设置中添加值

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.one);
    continueAligment = (Button) findViewById(R.id.continue_aligment);
    lineerLayout = (LinearLayout) findViewById(R.id.lineerLayout);
    final SharedPreferences sp = PreferenceManager
        .getDefaultSharedPreferences(this);
    inflater = getLayoutInflater();
    if (sp.getBoolean("ADD_TWO", false)) {
        inflateTwo();
    } else continueAligment.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            inflateTwo();
            sp.edit().putBoolean("ADD_TWO", true).commit();
        }
    });
}

private void inflateTwo() {
    view = inflater.inflate(R.layout.two, lineerLayout, false);
    nPointLineerLayout = (LinearLayout) view
        .findViewById(R.id.nPointlinearLayout);
    lineerLayout.addView(nPointLineerLayout,
        lineerLayout.indexOfChild(continueAligment));
}

当然,如果你已经添加了两个,你想要禁用该按钮 - 不是吗?