Programing

콘텐츠에는 id 속성이 'android.R.id.list'인 ListView가 있어야합니다.

lottogame 2020. 6. 10. 23:02
반응형

콘텐츠에는 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을 변경하는 데 시간을 보냈습니다. 응!

참고 URL : https://stackoverflow.com/questions/11050817/your-content-must-have-a-listview-whose-id-attribute-is-android-r-id-list

반응형