在以下应用程序中,选项卡将正确显示,但我无法确定列表视图未显示的原因。任何有关帮助的想法。它没有崩溃但我得到一个错误代码:任何帮助将不胜感激。
10-14 20:27:32.728: ERROR/AndroidRuntime(1592): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dana/com.dana.DanaHillsActivity}: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dana/com.dana.RSSView}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
要启动的类代码:
public class RSSView extends ListActivity {
private static RssListAdapter adapter;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
List<JSONObject> jobs = new ArrayList<JSONObject>();
try {
jobs = RssReader.getLatestRssFeed();
} catch (Exception e) {
Log.e("RSS ERROR", "Error loading RSS Feed Stream >> " + e.getMessage() + " //" + e.toString());
}
Log.d("id", "log this");
adapter = new RssListAdapter(this,jobs);
setListAdapter(adapter);
setContentView(R.layout.rssview1);
}
}
主要代码:
public class DanaHillsActivity extends TabActivity {
public static TabHost tabHost;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tabHost = (TabHost)findViewById(android.R.id.tabhost);
TabSpec firstTabSpec = tabHost.newTabSpec("tid1");
TabSpec secondTabSpec = tabHost.newTabSpec("tid1");
TabSpec thirdTabSpec = tabHost.newTabSpec("tid1");
/** TabSpec setIndicator() is used to set name for the tab. */
/** TabSpec setContent() is used to set content for a particular tab. */
firstTabSpec.setIndicator("1").setContent(new Intent(this,RSSView.class));
secondTabSpec.setIndicator("2").setContent(new Intent(this,RSSView.class));
thirdTabSpec.setIndicator("3").setContent(new Intent(this,RSSView.class));
/** Add tabSpec to the TabHost to display. */
tabHost.addTab(firstTabSpec);
tabHost.addTab(secondTabSpec);
tabHost.addTab(thirdTabSpec);
}
}
Main .xml:
<?xml version="1.0" encoding="utf-8"?>
<TabHost android:layout_width="fill_parent"
android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost">
<LinearLayout android:id="@+id/LinearLayout01"
android:orientation="vertical" android:layout_height="fill_parent"
android:layout_width="fill_parent">
<TabWidget android:id="@android:id/tabs"
android:layout_height="wrap_content" android:layout_width="fill_parent"></TabWidget>
<FrameLayout android:id="@android:id/tabcontent"
android:layout_height="fill_parent" android:layout_width="fill_parent"></FrameLayout>
</LinearLayout>
</TabHost>
rssview1.xml代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:background="@drawable/wallpaper">
<!-- List view -->
<ListView android:id="@+id/android:list" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:dividerHeight="0px"
android:divider="#00000000" />
</RelativeLayout>
答案 0 :(得分:0)
您的setContentView(R.layout.rssview1);
需要在设置列表适配器的行之前。尝试在setContentView(R.layout.rssview1);
super.onCreate(savedInstanceState);
答案 1 :(得分:0)
如果您使用的是List actvity,则无需设置setContentView(R.layout.layout_name);
删除它。我认为您的列表已创建但未显示,因为您的布局会覆盖此视图。
所以一旦删除该行setContentView(R.layout.layout_name);
答案 2 :(得分:0)