それぞれのモードに対して、レイアウトとレイアウトランドに 2 つの異なる xml ファイルがあります。向きが変わってもedittextsに値を戻したいのでandroid:configChanges="orientation|keyboardHidden"
、マニフェストファイルで使用しています。これにより、onCreate() メソッドの実行が再度非アクティブ化され、現在のアクティビティは破棄されません。
アプリに 2 つのフレームがあります。最初のフレームには 25 個の編集テキストが含まれ、2 番目のフレームには 10 個のボタンが含まれます。したがって、ポートレート モードではこれらのフレームが次々に表示され、ランドスケープ モードではフレームが隣り合って表示されます。モードに応じてこのビューを取得するにはsetContentView(R.layout.main);
、onConfigurationChanged()
メソッドに記述しました。しかし、ここでの問題は、すでに editTexts に入力されている値を に保存できることですonConfigurationChanged()
。しかし、それぞれのレイアウトに設定した後、値を編集テキストに戻すことができません。それぞれのレイアウトを取得していますが、空の編集テキストがあるためです。次のコード スニペットは、私の問題の概要を示しています。
public void onCreate()
{
setContentView(R.layout.main);
gridView = (GridView) findViewById(R.id.gridView1);
gridView.setAdapter(new EditTextAdapter(this)); //This creates 25 edittexts in the gridview which is in first frame.
}
public void getEditTexts()//getting the edittext objects here in the activity class
{
editText1=gridView.getChildAt(k);
...........
...........
}
public void onConfigurationChanged()
{
String s1=editText1.getText().toString();//Here I am using technique to store the values.
setContentView(R.layout.main);
gridView.setAdapter(new EditTextAdapter(this));
getEditTexts();
editText1.setText(s1); //here is my problem. I am unable to set values back in the editText.
}
どこが間違っているのですか?以前のモードで値が設定されている場合、現在のモードで 25 の edittexts でこのように値を戻す方法。提案してください。ここでは、モードが変更されても、古い edittext オブジェクト自体に値が設定されていると思います。新しい edittext オブジェクトに値を設定するには? 現在のレイアウトに存在しない場合、値が古い edittext オブジェクトに設定されるのはなぜですか? または、この問題には別の理由がありますか?