我得到一个运行时异常
java.lang.RuntimeException:您的内容必须具有一个ListView,其id属性为'android.R.id.list'
我不知道出了什么问题.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.newslist);
mDbHelper.open();
fillData();
}
private void fillData() {
Bundle extras = getIntent().getExtras();
long catID = extras.getLong("cat_id");
Cursor c = mDbHelper.fetchNews(catID);
startManagingCursor(c);
String[] from = new String[] { DBHelper.KEY_TITLE };
int[] to = new int[] { R.id.newslist_text };
SimpleCursorAdapter notes = new SimpleCursorAdapter(this, R.layout.text_newslist, c, from, to);
setListAdapter(notes);
}
Run Code Online (Sandbox Code Playgroud)
newslist.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ListView
android:id="@+id/catnewslist"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</ListView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
text_newslist.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"> …Run Code Online (Sandbox Code Playgroud) 我遇到了这个运行时错误,我真的很难找到它的底部:"你的内容必须有一个ListView,其id属性是android.R.id.list".
这是我的代码:
public class ShowAllJobsInArea extends ListActivity{
Context context;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.show_jobs_in_area);
context=getApplicationContext();
String area=Cookie.getAreaSelected();
final ProgressBar thinger=(ProgressBar) findViewById(R.id.progressBar2);
TabHost tabHost=(TabHost)findViewById(android.R.id.tabhost);
tabHost.setup();
TabSpec spec1=tabHost.newTabSpec("Tab 1");
spec1.setContent(R.id.tab1);
spec1.setIndicator("Starting");
TabSpec spec2=tabHost.newTabSpec("Tab 2");
spec2.setContent(R.id.tab2);
spec2.setIndicator("# Days");
TabSpec spec3=tabHost.newTabSpec("Tab 3");
spec3.setContent(R.id.tab3);
spec3.setIndicator("Rate");
tabHost.addTab(spec1);
tabHost.addTab(spec2);
tabHost.addTab(spec3);
Handler handler = new Handler() {
public void handleMessage(Message message) {
switch (message.what) {
case HttpConnection.DID_START:
thinger.setVisibility(View.VISIBLE);
break;
case HttpConnection.DID_SUCCEED:
String response = (String) message.obj;
Log.i("EOH",response);
ArrayList<String> startDates=new ArrayList<String>();
ArrayList<String> ns=new ArrayList<String>();
ArrayList<String> rates=new ArrayList<String>(); …Run Code Online (Sandbox Code Playgroud) 我想知道@+id/android:list和之间的区别是什么@+id/list.我知道最后一个是常规id分配,但第一个看起来不同.是什么让它与众不同?
我在哪里看到它: 我正在研究ListView,ListAdapter和类似的东西,作者在布局xml文件中定义ListView,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView
android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
<TextView
android:id="@+id/android:empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/main_no_items"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
还让我提一下@+id/android:emptyid.
他还扩展了ListActivity课程.
还有什么在我脑海中,因为问题是:
ListActivity吗?也许我想要一个包含其他视图的Activity.@+id/android:list只是因为我们扩展ListActivity或者我们可以使用相同的约定,如果我们扩展Activity?谢谢.
在ListActivity中可以使用 this.getListView().addFooterView(footerView);
但如果我使用Activity就无法使用 this.getListView()
我该怎么办?