2012-02-13 76 views
2

我收到一個異常,但無法得到發生異常的位置。 我搜索,但無法在堆棧跟蹤中獲取我的項目名稱。ListView Android中的奇怪異常

下面是我的堆棧跟蹤

02-13 15:48:23.741: W/dalvikvm(416): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 
02-13 15:48:24.026: W/System.err(416): android.content.res.Resources$NotFoundException: File from xml type layout resource ID #0x102000a 
02-13 15:48:24.036: W/System.err(416): at android.content.res.Resources.loadXmlResourceParser(Resources.java:1916) 
02-13 15:48:24.036: W/System.err(416): at android.content.res.Resources.loadXmlResourceParser(Resources.java:1871) 
02-13 15:48:24.036: W/System.err(416): at android.content.res.Resources.getLayout(Resources.java:731) 
02-13 15:48:24.036: W/System.err(416): at android.view.LayoutInflater.inflate(LayoutInflater.java:318) 
02-13 15:48:24.036: W/System.err(416): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:332) 
02-13 15:48:24.036: W/System.err(416): at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323) 
02-13 15:48:24.036: W/System.err(416): at android.widget.AbsListView.obtainView(AbsListView.java:1315) 
02-13 15:48:24.046: W/System.err(416): at android.widget.ListView.makeAndAddView(ListView.java:1727) 
02-13 15:48:24.046: W/System.err(416): at android.widget.ListView.fillDown(ListView.java:652) 
02-13 15:48:24.046: W/System.err(416): at android.widget.ListView.fillFromTop(ListView.java:709) 
02-13 15:48:24.046: W/System.err(416): at android.widget.ListView.layoutChildren(ListView.java:1580) 
02-13 15:48:24.046: W/System.err(416): at android.widget.AbsListView.onLayout(AbsListView.java:1147) 
02-13 15:48:24.046: W/System.err(416): at android.view.View.layout(View.java:7035) 
02-13 15:48:24.046: W/System.err(416): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1249) 
02-13 15:48:24.046: W/System.err(416): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1125) 
02-13 15:48:24.046: W/System.err(416): at android.widget.LinearLayout.onLayout(LinearLayout.java:1042) 
02-13 15:48:24.046: W/System.err(416): at android.view.View.layout(View.java:7035) 
02-13 15:48:24.046: W/System.err(416): at android.widget.RelativeLayout.onLayout(RelativeLayout.java:909) 
02-13 15:48:24.056: W/System.err(416): at android.view.View.layout(View.java:7035) 
02-13 15:48:24.056: W/System.err(416): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1249) 
02-13 15:48:24.056: W/System.err(416): at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1238) 
02-13 15:48:24.056: W/System.err(416): at android.widget.LinearLayout.onLayout(LinearLayout.java:1044) 
02-13 15:48:24.056: W/System.err(416): at android.view.View.layout(View.java:7035) 
02-13 15:48:24.056: W/System.err(416): at android.widget.FrameLayout.onLayout(FrameLayout.java:333) 
02-13 15:48:24.056: W/System.err(416): at android.view.View.layout(View.java:7035) 
02-13 15:48:24.056: W/System.err(416): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1249) 
02-13 15:48:24.066: W/System.err(416): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1125) 
02-13 15:48:24.066: W/System.err(416): at android.widget.LinearLayout.onLayout(LinearLayout.java:1042) 
02-13 15:48:24.066: W/System.err(416): at android.view.View.layout(View.java:7035) 
02-13 15:48:24.076: W/System.err(416): at android.widget.FrameLayout.onLayout(FrameLayout.java:333) 
02-13 15:48:24.076: W/System.err(416): at android.view.View.layout(View.java:7035) 
02-13 15:48:24.076: W/System.err(416): at android.view.ViewRoot.performTraversals(ViewRoot.java:1045) 
02-13 15:48:24.076: W/System.err(416): at android.view.ViewRoot.handleMessage(ViewRoot.java:1727) 
02-13 15:48:24.076: W/System.err(416): at android.os.Handler.dispatchMessage(Handler.java:99) 
02-13 15:48:24.076: W/System.err(416): at android.os.Looper.loop(Looper.java:123) 
02-13 15:48:24.076: W/System.err(416): at android.app.ActivityThread.main(ActivityThread.java:4627) 
02-13 15:48:24.076: W/System.err(416): at java.lang.reflect.Method.invokeNative(Native Method) 
02-13 15:48:24.086: W/System.err(416): at java.lang.reflect.Method.invoke(Method.java:521) 
02-13 15:48:24.086: W/System.err(416): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
02-13 15:48:24.086: W/System.err(416): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
02-13 15:48:24.086: W/System.err(416): at dalvik.system.NativeStart.main(Native Method) 
02-13 15:48:24.086: W/System.err(416): Caused by: java.io.FileNotFoundException: 
02-13 15:48:24.086: W/System.err(416):  at android.content.res.AssetManager.openXmlAssetNative(Native Method) 
02-13 15:48:24.086: W/System.err(416): at android.content.res.AssetManager.openXmlBlockAsset(AssetManager.java:485) 
02-13 15:48:24.086: W/System.err(416): at android.content.res.Resources.loadXmlResourceParser(Resources.java:1898) 
02-13 15:48:24.086: W/System.err(416): ... 40 more 

我的項目包的名字是

com.stylingandroid.IntelligentLayout.SecondaryLayout; 

我不能在所有 看到我的包名之前,我有我設置是正確的例外是個例外

02-13 15:39:25.756: W/System.err(379): Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list' 

我將ListView ID更改爲android:id="@id/android:list"和在Java代碼中,我改變了適配器

setListAdapter(new ArrayAdapter<String>(this,android.R.id.list, STATE)); 
    getListView().setTextFilterEnabled(true); 

我的類擴展ListActivity

public class StateList extends ListActivity{ 

期待您的回覆。 謝謝。

+0

將ListActivity更改爲Activity – 2012-02-13 10:42:20

+0

那麼我將如何使用setListAdapter'setListAdapter(new ArrayAdapter (this,android.R.id.list,STATE)); getListView()。setTextFilterEnabled(true);' 當更改爲只是活動我得到的方法setListAdapter是未定義的。 'super.onListItemClick(l,v,position,id); \t對象o = this.getListAdapter()。getItem(position);' listItem上的方法未定義爲Activity。 對於StateList類型,未定義getListAdapter()方法。 – Mukunda 2012-02-13 10:45:50

+0

http:// stackoverflow。com/questions/2242136/how-can-i-implement -a-listview-without-listactivity-use-only-activity – 2012-02-13 10:57:34

回答

1

似乎缺少資源0x102000a。您需要從您的R.java反向引用此值,並找到導致此問題的資源。

我還懷疑你已經使用了你自己的id,而不是android.R.id.list來識別你的佈局xml文件中的資源。

參考What is difference between @+id/android:list and @+id/list

的ListView不是直線前進的其他部件。進行一些更詳細的研究以使其工作。我經歷了那個循環:)。

1

請您在Android開發者論壇上的ListView規格: http://developer.android.com/resources/tutorials/views/hello-listview.html

下面的方法需要被用來顯示在列表視圖每個項目的佈局資源。

setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES)); 

list_item.xml

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:padding="10dp" 
    android:textSize="16sp" > 
</TextView> 

所以,這裏的每一個列表項將顯示爲一個TextView。

+0

謝謝,但我的佈局中有很多TextView,而且我的佈局很大,我先嚐試調用佈局,然後再調用TextView,但得到異常。 我在這裏得到了異常'setContentView(R.layout.statelist_layout);'和以後我使用TextView'setListAdapter(new ArrayAdapter (this,R.id.listitem,STATE));' 我得到的異常是'W/dalvikvm(455):threadid = 1:線程退出時未捕獲的異常(組= 0x4001d800)'。 – Mukunda 2012-02-13 12:06:08

0

我有同樣的問題。我的班級正在擴展ListActivity,我更改爲Activity,現在正在運行。