你的内容必须有一个ListView的id属性是“android.R.id.list”
我已经创build了一个这样的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); } }
如你所见,我没有做任何事情。 但是我得到错误:
你的内容必须有一个ListView的id属性是“android.R.id.list”
即使我有我的xml中的android:id="@+id/list"
行。
问题是什么?
像这样重命名ListView的id,
<ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
由于您使用的是ListActivity
您的xml文件必须在提及ID的同时指定关键字android 。
如果你需要一个自定义ListView
而不是扩展一个ListActivity
,你只需要扩展一个Activity
并且应该有没有关键字android的相同的id。
你应该在你的mainlist.xml
文件中有一个listview,id为@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>
inheritanceActivity类而不是ListActivity可以解决此问题。
public class ExampleActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.mainlist); } }
另一件事情影响了我:如果您有多个testing设备,请确保您正在对设备使用的布局进行更改。 在我的情况下,我花了一段时间在“布局”目录中更改xmls,直到我发现我的大型手机(通过testing切换到中途)在“layout-sw360dp”目录中使用xmls。 哎呀!