콘텐츠에는 id 속성이 'android.R.id.list'인 ListView가 있어야합니다.
다음과 같은 xml 파일을 만들었습니다.
<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/list" >
</ListView>
그리고 활동 :
public class ExampleActivity extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mainlist);
}
}
보시다시피, 나는 다른 일을 한 적이 없습니다. 하지만 오류가 발생합니다.
콘텐츠에는 id 속성이 'android.R.id.list'인 ListView가 있어야합니다.
비록 android:id="@+id/list"
내 XML에 줄 이 있지만 .
무엇이 문제입니까?
다음과 같이 ListView의 ID 이름을 바꾸십시오.
<ListView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
당신이 사용하고 있기 때문에 ListActivity
키워드를 지정해야합니다 XML 파일을 안드로이드 ID로 언급하면서.
ListView
확장 대신에 사용자 정의가 필요한 경우 ListActivity
단순히 확장 Activity
하고 키워드 android 없이 동일한 ID를 가져야합니다 .
mainlist.xml
파일에 하나의 목록보기가 있어야합니다.@android:id/list
<ListView
android:id="@android:id/list"
android:layout_height="wrap_content"
android:layout_height="fill_parent"/>
<ListView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
이것은 당신의 문제를 해결해야합니다
처음에는 작동하지 못했기 때문에 위의 피드백을 기반 으로이 문제를 해결했습니다.
activity_main.xml :
<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@android:id/list"
>
</ListView>
MainActivity.java :
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addPreferencesFromResource(R.xml.preferences);
preferences.xml :
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCategory
android:key="upgradecategory"
android:title="Upgrade" >
<Preference
android:key="download"
android:title="Get OnCall Pager Pro"
android:summary="Touch to download the Pro Version!" />
</PreferenceCategory>
</PreferenceScreen>
상속 활동 클래스 대신 ListActivity 이 문제를 해결할 수 있습니다.
public class ExampleActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mainlist);
}
}
<ListView android:id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="false"
android:scrollbars="vertical"/>
나에게 영향을 준 또 다른 사항 : 테스트 장치가 여러 개인 경우 장치에서 사용하는 레이아웃을 변경하고 있는지 확인하십시오. 필자의 경우 더 큰 전화 (테스트 도중 중간으로 전환 한)가 "layout-sw360dp"디렉토리의 xml을 사용하고 있음을 알 때까지 "layout"디렉토리에서 xml을 변경하는 데 시간을 보냈습니다. 응!
'Programing' 카테고리의 다른 글
COUNTIF 집계 함수에 해당하는 SQL Server (0) | 2020.06.10 |
---|---|
ACID 및 데이터베이스 트랜잭션은 어떻게 작동합니까? (0) | 2020.06.10 |
.Net 어셈블리의 PublicKeyToken 얻기 (0) | 2020.06.10 |
저자를 변경하기 위해 Git에서 여러 커밋을 수정하는 방법 (0) | 2020.06.10 |
장고 클래스 기반 뷰에서 permission_required 데코레이터를 사용하는 방법 (0) | 2020.06.10 |