2012-07-24 4 views
1

방향 변경 ICS에 축소 항목 충돌 :ActionBarSherlock의 : 나는이 같은 XML에 정의 된 접을 수있는 메뉴 항목이

<?xml version="1.0" encoding="utf-8"?> 
<EditText xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:imeOptions="actionSearch" 
android:inputType="text" 
android:hint="@string/search"/> 

항목을 : 여기

<item 
    android:id="@+id/searchMenu" 
    android:icon="@android:drawable/ic_menu_search" 
    android:showAsAction="withText|always|collapseActionView" 
    android:actionLayout="@layout/collapsible_edittext"/> 

는 collapsible_edittext.xml 파일입니다 확장되어 있으며 전화 방향을 변경하면 logcat에서이 오류가 발생하여 충돌합니다.

07-24 08 : 59 : 19.353 : E/AndroidRuntime (1284) : 원인 : java.lang.IllegalArgume ntException : 잘못된 상태 클래스. 뷰 상태를 예상하고 있지만 대신 클래스 android.widget.TextView $ SavedState를 받았습니다. 이는 일반적으로 서로 다른 유형의 두보기가 동일한 계층 구조에서 동일한 ID를 가질 때 발생합니다. 이 뷰의 ID는 id/searchMenu입니다. 다른보기가 동일한 ID를 사용하지 않는지 확인하십시오.

android : id = "@ + id/searchMenu"를 제거하면 모든 것이 정상적으로 작동하지만 코드에 항목 ID가 필요합니다. 이 오류는 ICS (젤리 빈 에뮬레이터에서도 작동합니다) 및 ActionBarSherlock 4.1.0을 사용하고 있습니다.

+0

오류가 매우 분명해 보입니다. 같은 신분증을 가진 두 가지 견해가 있습니까? –

+0

방금 ​​답변을 찾았습니다. 안드로이드는 접힌 항목에 동일한 ID를 사용합니다. 하나님은 알고 있습니다 ... 대답 해줄 시간을내어 주셔서 감사합니다. 저는 ABS와 viewpager nice work mate로 한 것을 좋아합니다. :) – vinceseguin

답변

3

사실 마침내 문제가 발견되었습니다. 사실 ActionBarSherlock과 연결되지 않았습니다. (액션 바 sherlock을 제거했습니다. 내 프로젝트에서 그것은 여전히 ​​충돌했다).

내 EditText에 id를 추가하기 만하면됩니다.

<?xml version="1.0" encoding="utf-8"?> 
<EditText xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/collapsibleEditText" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:imeOptions="actionSearch" 
    android:inputType="text" 
    android:hint="@string/search"/> 
관련 문제