1

私は最初の Android アプリを作成しています。Google Places API からの提案を含む AutoCompleteTextView があります。提案から項目が選択されると、その項目に関する詳細情報が以下に表示されます。これは正常に機能しますが、画面の向きが変更されると、項目が選択されていないかのように値が消え続けます。別のアイテムを選択すると、提案は問題なく表示されますが、画面の向きが変更されたときに 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

これをマニフェストのアクティビティに追加します

android:configChanges="locale|keyboardHidden|orientation" 

なので

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