2012-02-17 6 views
0

1つのタブの下に2つの簡単なアクティビティ(相対レイアウトがそれぞれ1つのボタンをホスト)があります。それぞれにはリンクがあり、あるアクティビティから別のアクティビティに移動できます(すべてが同じタブで動作します)。プログラムは3番目のループの後にクラッシュします(1番目のアクティビティ - 2番目 - 1番目 - 2番目 - 1番目 - 2番目)。アクティビティを変更すると1つのTABで複数のアクティビティがクラッシュする

は、私は次のコードで別のアクティビティから行く:

Tabs s = (Tabs) getParent(); 
Intent myIntent = new Intent(getApplicationContext(), Map.class); 
View view = s.getLocalActivityManager().startActivity("map", 
    myIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView(); 
setContentView(view); 

私が活動に持っているもののレイアウトは重要ではありませんが、基本的にそれはまだすべての第三のループをクラッシュします。

私は他のアイデアはありませんが、アンドロイドはこのナビゲーション(同じタブの下の1つのアクティビティから別のアクティビティまで)を不定期ループとして解釈します。基本的にはユーザーが行いますが、私によってプログラムされているループではありません。

いくつかのアンドロイドのバグですか、何か間違っていますか?

私はこのエラーを取得しています:

02-17 10:36:00.566: E/AndroidRuntime(4155): FATAL EXCEPTION: main 
02-17 10:36:00.566: E/AndroidRuntime(4155): java.lang.StackOverflowError 
02-17 10:36:00.566: E/AndroidRuntime(4155):  at android.widget.TextView.getExtendedPaddingTop(TextView.java:1281) 
02-17 10:36:00.566: E/AndroidRuntime(4155):  at android.widget.TextView.getVerticalOffset(TextView.java:3570) 
02-17 10:36:00.566: E/AndroidRuntime(4155):  at android.widget.TextView.onDraw(TextView.java:4050) 
02-17 10:36:00.566: E/AndroidRuntime(4155):  at android.view.View.draw(View.java:6880) 
02-17 10:36:00.566: E/AndroidRuntime(4155):  at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
02-17 10:36:00.566: E/AndroidRuntime(4155):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
02-17 10:36:00.566: E/AndroidRuntime(4155):  at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
02-17 10:36:00.566: E/AndroidRuntime(4155):  at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
02-17 10:36:00.566: E/AndroidRuntime(4155):  at android.view.View.draw(View.java:6883) 

EDIT: OK、私はこのエラーが表示される理由のアイデアを持っています。あるアクティビティから別のアクティビティに移動するたびに、新しいインテントを作成し、新しいアクティビティを開始します。そうかもしれない。 どうすれば再利用できますか?私はビューを再利用しようとすると、私はこのエラーを取得する:

02-17 13:14:03.429: E/AndroidRuntime(5374): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first. 

答えて