保持AutoCompleteTextView的值不会在方向更改时重置

时间:2012-11-21 02:45:27

标签: java android android-layout google-places-api android-orientation

我正在创建我的第一个Android应用,我有一个AutoCompleteTextView,其中包含Google Places API中显示的建议。当从建议中选择一个项目时,我有更多关于它的信息,如下所示。这样可以正常工作,但是当屏幕方向改变时,值会一直消失,就好像没有选择任何项目一样。如果我选择另一个项目,建议显示正常,但是当屏幕方向改变时,有没有办法保持我的TextViews和AutoCompleteTextView的值?

2 个答案:

答案 0 :(得分:1)

您只需将所选项目存储在onSaveInstanceState(Bundle outState)中,然后将其加载到onCreate(Bundle savedInstanceState)上,就像这样。

public class MainActivity extends Activity {

    final String KEY = "save key";
    int mSelectedItemIndex = -1;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if (savedInstanceState != null) {
            mSelectedItemIndex = savedInstanceState.getInt(KEY);
        }

        if (mSelectedItemIndex != -1) {
            // bind selected item to AutoCompleteTextView
        }
    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);

        // Save your current index
        if (mSelectedItemIndex != -1) {
            outState.putInt(KEY, mSelectedItemIndex);
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

}

答案 1 :(得分:-1)

将此添加到清单中的活动

android:configChanges="locale|keyboardHidden|orientation" 

as

<activity android:name=".youractivityname"
              android:label="youractivityname"
              android:configChanges="locale|keyboardHidden|orientation"/>
相关问题