0

Fragment を使用した Android アクティビティがあります。私のアプリケーションが開始されると、サーバーから送信された 10 個の要素がリストビューに読み込まれます。(簡単なリクエスト)。

デバイスの向きを変更すると、アクティビティが再作成され、リストビューをロードするリクエストとともにスピナーも表示されます。

Activity の再作成を禁止するにはどうすればよいですか?

私はすでにフラグを設定しています:

android:configChanges="orientation|keyboardHidden|screenSize" 

そして onConfigurationChanged :

public void onConfigurationChanged(Configuration newConfig) {
   super.onConfigurationChanged(newConfig);
   mDrawerToggle.onConfigurationChanged(newConfig);
}
4

3 に答える 3

0

onSaveInstanceState(Bundle savedInstanceState) をオーバーライドし、向きが変わったときに必要なすべての値の状態を維持する必要があります。

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
  super.onSaveInstanceState(savedInstanceState);
  // This bundle will be passed to onCreate if the process is
  // killed and restarted.
  savedInstanceState.putString("jsonArrayString", jsonArrayStrin);
  // etc.
}

この値は、onCreate および/または onRestoreInstanceState に渡されます。これは、次を使用して取得できます。

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
  super.onRestoreInstanceState(savedInstanceState);
  // This bundle has also been passed to onCreate.
  String myArrayString = savedInstanceState.getString("jsonArrayString");
}

お役に立てれば

于 2013-07-16T13:01:38.510 に答える
0

次に、オーバーライドしたい

@Override
public void onConfigurationChanged(Configuration newConfig)
{
}

アクティビティで、orientation/keyboardHidden/screenSize でやりたいことを行います。

マニフェストでフラグを設定すると、これらの構成変更を自分で処理する必要があることがアプリに伝えられます。

于 2013-07-16T12:56:59.300 に答える