2014-01-20 4 views

답변

0

그렇게 일부 API> (10) 자원이 부족하기 때문에 응용 프로그램은 안드로이드 2.3에 충돌합니다 :

  1. 로 이동 "XListFragment"을하고 다음 줄을 변경 :

setListAdapter (새 ArrayAdapter와을 (getActivity(), R.layout.main_list_item, android.R.id.text1, DummyContent.ITEMS));

레이아웃을 직접 변경하십시오.

  1. "getActionBar(). setDisplayHomeAsUpEnabled (true);"이 줄을 주석 처리하고 "XDetailActivity"

actionBar를 얻으려면 호환성 라이브러리를 사용해야합니다.

3

대답은 입니다.

Android 2.3에서 실행하려면 두 가지 변경이 필요합니다.

먼저 생성 된 클래스 ItemListFragment에는 API 레벨 11 : simple_list_item_activated_1에 도입 된 레이아웃 상수가 포함되어 있습니다. 이 특정 레이아웃은 활성화 된 목록 항목을 강조 표시합니다. 세부 정보 창에서 어떤 목록 항목을 선택하여 표시했는지 사용자에게 보여주기 때문에 여러 창 레이아웃이있는 경우 유용합니다.

내가 지금은 강조 표시를 무시하고 단지 실행 코드를 얻으려고 :

int layout = android.R.layout.simple_list_item_1; 
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
    layout = android.R.layout.simple_list_item_activated_1; 
} 

setListAdapter(new ArrayAdapter<DummyContent.DummyItem>(
    getActivity(), 
    layout, 
    android.R.id.text1, 
    DummyContent.ITEMS)); 

두 번째 문제는 추가 라이브러리를 추가하지 않고 구형 장치에 사용할 수없는 액션 바있다. 이것이 내 다음 글의 주제이기 때문에, 나는 지금 구형 장치에서 ActionBar를 무시한다. ItemDetailActivity이에 getActionBar (와 라인) 변경 :

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
    getActionBar().setDisplayHomeAsUpEnabled(true); 
} 

지금 당신은 린트 경고를 얻을. 호출에 API 수준 11이 필요하지만 매니페스트 파일에 API 수준 9가 최소한으로 명시되어 있어야합니다.() 메소드에서 onCreate에 대한 새로운 API 경고를 억제하기 위해 주석을 추가

@SuppressLint("NewApi")

지금 API 레벨 9를 지원하기 위해의 AndroidManifest.xml 파일을 변경 : 이러한 변경으로

<uses-sdk 
android:minSdkVersion="9" 
android:targetSdkVersion="16" /> 

을, 당신 이제 Android 2.3에서 프로젝트를 실행할 수 있습니다.

+0

다음 게시물의 주제가되는 더 많은 정보를 언급합니다. 그러한 게시물이 만들어 졌습니까? – Erhannis

관련 문제