あわさんご返信ありがとうございます。
私の知識の範囲で可能な限り最小構成のFragmentプロジェクトを作成してみましたが、やはりonResumeやonStart等が二回呼ばれている様です。
その時のログとソースコードを貼りますのでご教授願えませんでしょうか。
MainなActivity
package jp.gr.java_conf.ionexux.fragmenttest;
import android.app.Activity;
import android.app.FragmentTransaction;
import android.media.AudioManager;
import android.os.Bundle;
import android.util.Log;
public class FragmentTestActivity extends Activity {
private FragmentTest2 mFragmentTest2;
private String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG, "onCreate");
setContentView(R.layout.main);
setVolumeControlStream(AudioManager.STREAM_MUSIC);
}
@Override
protected void onResume() {
super.onResume();
Log.d(TAG, "onResume");
// PowerFragmentをインスタンス化する
mFragmentTest2 = new FragmentTest2();
// fragmentのマネージャを取得する
FragmentTransaction ft = getFragmentManager().beginTransaction();
// fragmentを配置する
ft.add(R.id.powerFragment, mFragmentTest2);
// トランザクションをコミットする
ft.commit();
}
}
MainのActivityに利用されるFragment
package jp.gr.java_conf.ionexux.fragmenttest;
import android.app.Activity;
import android.app.Fragment;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class FragmentTest2 extends Fragment {
private final String TAG = "FragmentTest2";
@Override
public void onAttach(Activity act) {
super.onAttach(act);
Log.d(TAG, "onAttach");
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG, "onCreate");
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Log.d(TAG, "onCreateView");
// レイアウトを生成
View v = inflater.inflate(R.layout.power, container, false);
return v;
}
@Override
public void onActivityCreated(Bundle bundle) {
super.onActivityCreated(bundle);
Log.d(TAG, "onActivityCreated");
}
@Override
public void onStart() {
super.onStart();
Log.d(TAG, "onStart");
}
@Override
public void onResume() {
super.onResume();
Log.d(TAG, "onResume");
}
@Override
public void onPause() {
super.onPause();
Log.d(TAG, "onPause");
}
@Override
public void onStop() {
super.onStop();
Log.d(TAG, "onStop");
}
@Override
public void onDestroyView() {
super.onDestroyView();
Log.d(TAG, "onDestroyView");
}
@Override
public void onDestroy() {
super.onDestroy();
Log.d(TAG, "onDestroy");
}
@Override
public void onDetach() {
super.onDetach();
Log.d(TAG, "onDetach");
}
}
MainなActivityに利用されるレイアウトxml
<?xml version="1.0" encoding="utf-8"?>
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<fragment
android:id="@+id/powerFragment"
android:name="jp.gr.java_conf.ionexux.fragmenttest.FragmentTest2"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
Fragmentに利用されるレイアウトxml
<?xml version="1.0" encoding="utf-8"?>
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/powerTextView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/powerDownButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/down" />
<Button
android:id="@+id/powerUpButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/up" />
</LinearLayout>
<Button
android:id="@+id/powerStopButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/stop" />
<Button
android:id="@+id/powerStartButton"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/start" />
</LinearLayout>
何卒よろしくお願いします
2012年3月1日木曜日12時17分34秒 UTC+9 awwa: