0

わかりましたので、私のアクティビティで、ご覧のとおり、コンテンツビューをあるビューから別のビューに変更しました。そのため、アクティビティが閉じられたときに最後にあったコンテンツ ビューを保存する方法を考えていました。

 public class Levels extends Activity{

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setTheme(android.R.style.Theme_NoTitleBar_Fullscreen);
    setContentView(R.layout.levels);

    final EditText anstext1 = (EditText) findViewById(R.id.anstext1);
    Button button1 = (Button) findViewById(R.id.button1);

    button1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {   
             String result = anstext1.getText().toString();
             if(result.equals("they"))
                 setContentView(R.layout.social);
             else 
               Toast.makeText(getApplicationContext(), "Wrong", Toast.LENGTH_LONG).show();
        }
    });
    }
}
4

2 に答える 2

2

setContentView

このメソッドは、Activity ライフサイクルで 1 回だけ呼び出す必要があります。

保存状態

ほとんどの場合、onSaveInstanceState を使用してモデルを保存し、そのメソッドから生成されたバンドルを使用してモデルを復元します。アクティビティ、フラグメント、およびビューには、これらの種類のメソッドが組み込まれています。

持続状態

現在のアプリのライフサイクルよりも長い期間データを使用する必要がある場合は、次のメカニズムのいずれかを使用できます。

  1. 共有設定
  2. SQL-lite DB
  3. ファイル I/O
于 2013-04-06T22:34:43.003 に答える
0
  1. R.layout.levels の型を持つ変数を作成します。R.layout.levels が RelativeLayout であると仮定します: RelativeLayout rl;

  2. 次のように初期化します: rl = (RelativeLayout) getLayoutInflater().inflate(R.layout.levels,null);

  3. setContentView (rl);

アクティビティが破棄されたときのために変数を保存したい場合は、それをカスタム Application クラスに入れて、そこから取得できます。「グローバル状態の維持」でそれを行う方法をここで見つけます:http://www.intridea.com/blog/2011/5/24/how-to-use-application-object-of-android

これを行うのが良いか悪いかはわかりませんが、あなたが求めていることの解決策になる可能性があります.

于 2013-04-06T22:48:58.147 に答える