1

我正在制作我的第一个 android 应用程序,并且我有一个 AutoCompleteTextView,其中包含来自 Google Places API 的建议。从建议中选择一个项目时,我会在下面显示有关它的更多信息。这很好用,但是当屏幕方向改变时,值会不断消失,就好像没有选择任何项目一样。如果我选择另一个项目,建议显示得很好,但是当屏幕方向改变时,有什么方法可以保留我的 TextViews 和 AutoCompleteTextView 的值?

4

2 回答 2

2

您只需将所选项目存储在 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;
    }

}
于 2012-11-21T05:49:05.067 回答
-1

将此添加到清单中的 Activity

android:configChanges="locale|keyboardHidden|orientation" 

作为

<activity android:name=".youractivityname"
              android:label="youractivityname"
              android:configChanges="locale|keyboardHidden|orientation"/>
于 2012-11-21T02:47:58.653 回答