Переключение деятельности с помощью ActivityGroup на вкладке (Android)
При переходе между действиями (используя ActivityGroup на вкладках) выдается ошибка:
04-26 08:46:04.599: ERROR/AndroidRuntime(992): java.lang.StackruError
04-26 08:46:04.599: ERROR/AndroidRuntime(992): at android.text.Layout.measureText(Layout.java:1601)
04-26 08:46:04.599: ERROR/AndroidRuntime(992): at android.text.Layout.getLineMax(Layout.java:655)
04-26 08:46:04.599: ERROR/AndroidRuntime(992): at android.text.Layout.draw(Layout.java:311)
04-26 08:46:04.599: ERROR/AndroidRuntime(992): at android.text.BoringLayout.draw(BoringLayout.java:365)
04-26 08:46:04.599: ERROR/AndroidRuntime(992): at android.widget.TextView.onDraw(TextView.java:4052)
04-26 08:46:04.599: ERROR/AndroidRuntime(992): at android.view.View.draw(View.java:6535)
04-26 08:46:04.599: ERROR/AndroidRuntime(992): at android.view.ViewGroup.drawChild(ViewGroup.java:1531)
04-26 08:46:04.599: ERROR/AndroidRuntime(992): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
...
код:
...
private ListView _lv;
...
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
List cats = Category.getAllCategories(this);
_lv = (ListView)findViewById(android.R.id.list);
_lv.setAdapter(new CategoryAdapter(getBaseContext(),R.layout.list_item_layout, cats));
_lv.setOnItemClickListener(new ListClickListener());
...
}
public void replaceContentView(String id, Intent newIntent/*,int result*/) {
View view = getLocalActivityManager().startActivity(id,newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
.getDecorView();
this.setContentView(view);
}
Код взят здесь: http://www.gamma-point.com/content/android-how-have-multiple-activities-under-single-tab-tabactivity
Мои макеты:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/recipes_in_cat_list"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="left"
android:background="@drawable/tab_upper_bar">
<Button
android:id="@+id/back_to_cats_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dip"
android:background="@drawable/android_info_button" />
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:divider = "#00000000"
android:cacheColorHint="#00000000" />
Макет для элемента списка:
<?xml version=«1.0» encoding=«utf-8»?>
<LinearLayout
xmlns:android=«schemas.android.com/apk/res/android»
android:orientation=«horizontal»
android:layout_width=«fill_parent»
android:layout_height=«40dip»
android:layout_weight=«1»
android:padding = «10dip»
android:background ="@drawable/list_item_bg"
android:layout_centerHorizontal=«true»>
<ImageView
android:id="@+id/recipe_list_left"
android:layout_width=«wrap_content»
android:layout_height=«fill_parent»
android:src="@drawable/list_left"
android:layout_weight=«0» />
<TextView
android:id="@+id/recipe_list_text"
android:layout_width=«fill_parent»
android:layout_height=«fill_parent»
style = "@style/RecipeListText"
android:layout_weight=«1»
android:gravity=«center_horizontal» />
<ImageView
android:id="@+id/recipe_list_right"
android:layout_width=«wrap_content»
android:layout_height=«fill_parent»
android:src="@drawable/list_right"
android:layout_weight=«0» />
Кто сталкивался с этой ошибкой? Пожалуйста помоги
1 ответ
Исключение Stackru обычно подразумевает, что вы находитесь в бесконечном цикле и стек вызовов окончательно переполняется. Можете ли вы показать больше вашей трассировки стека? У меня было это сегодня, на самом деле, в группе действий, когда onOptionsItemSelected() вызвал его сам (очевидно, непреднамеренно)