2014-02-13 38 views
0
02-13 05:29:12.454: E/AndroidRuntime(1374): FATAL EXCEPTION: main 
02-13 05:29:12.454: E/AndroidRuntime(1374): Process: net.multiplesystem.nosms, PID: 1374 
02-13 05:29:12.454: E/AndroidRuntime(1374): java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list' 
02-13 05:29:12.454: E/AndroidRuntime(1374):  at android.support.v4.app.ListFragment.ensureList(ListFragment.java:344) 
02-13 05:29:12.454: E/AndroidRuntime(1374):  at android.support.v4.app.ListFragment.onViewCreated(ListFragment.java:145) 
02-13 05:29:12.454: E/AndroidRuntime(1374):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:941) 
02-13 05:29:12.454: E/AndroidRuntime(1374):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104) 
02-13 05:29:12.454: E/AndroidRuntime(1374):  at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682) 
02-13 05:29:12.454: E/AndroidRuntime(1374):  at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467) 
02-13 05:29:12.454: E/AndroidRuntime(1374):  at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:472) 
02-13 05:29:12.454: E/AndroidRuntime(1374):  at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141) 
02-13 05:29:12.454: E/AndroidRuntime(1374):  at android.support.v4.view.ViewPager.populate(ViewPager.java:1068) 
02-13 05:29:12.454: E/AndroidRuntime(1374):  at android.support.v4.view.ViewPager.populate(ViewPager.java:914) 
02-13 05:29:12.454: E/AndroidRuntime(1374):  at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1436) 
02-13 05:29:12.454: E/AndroidRuntime(1374):  at android.view.View.measure(View.java:16458) 
02-13 05:29:12.454: E/AndroidRuntime(1374):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
02-13 05:29:12.454: E/AndroidRuntime(1374):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
02-13 05:29:12.454: E/AndroidRuntime(1374):  at android.view.View.measure(View.java:16458) 
02-13 05:29:12.454: E/AndroidRuntime(1374):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
02-13 05:29:12.454: E/AndroidRuntime(1374):  at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:327) 
02-13 05:29:12.454: E/AndroidRuntime(1374):  at android.view.View.measure(View.java:16458) 
02-13 05:29:12.454: E/AndroidRuntime(1374):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
02-13 05:29:12.454: E/AndroidRuntime(1374):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
02-13 05:29:12.454: E/AndroidRuntime(1374):  at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2289) 
02-13 05:29:12.454: E/AndroidRuntime(1374):  at android.view.View.measure(View.java:16458) 

XML內容必須有一個ListView其id屬性爲 'android.R.id.list'

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 
    <ListView 
     android:id="@android:id/list" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 
</LinearLayout> 

JAVA

public class UserDetails extends ListFragment { 
    ArrayAdapter<String> adapter; 
    ArrayList<String> userIndex = new ArrayList<String>(); 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View android = inflater.inflate(R.layout.users_tab, container, false); 
     adapter = new ArrayAdapter<String>(inflater.getContext(),R.layout.single_user_chat_tab,userIndex); 
     setListAdapter(adapter); 
     return android; 
    } 
} 

當我執行程序顯示它的運行時間例外。但我已準備好有ID列表的列表視圖。我不知道爲什麼它會顯示異常。請指導我的朋友爲什麼會拋出異常。我已經嘗試了所有的解決方案,但仍然遇到同樣的問題。

+1

也發佈你的'ListFragment'。 – Apoorv

+0

您是否嘗試清理並重建項目? – Blackbelt

+0

發佈您的代碼和XML – SMR

回答

0
<ListView 
     android:id="@id/android:list" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 
+0

不工作。我的活動類擴展ListFragment。 –

+0

@AndroidLearner檢查現在,來源:http: //developer.android.com/reference/android/app/ListFragment.html – user2450263

+1

使用ListActi時vity或ListFragment,我們必須在我們的佈局xml中有一個ListView,其ID是= @ id/android:list。由於ListActivity和ListFragment在內部使用此ID來創建列表,並且這是由getListView()引用或返回的列表。 –

1

我不認爲你可以在onCreateView返回你的自定義視圖之前調用setListAdapter。我看到3個解決方案

  1. 要麼調用super.onCreateView(),而不是膨脹
  2. 要麼設置你的適配器OnActivityCreated
  3. 要麼寫android.findViewById(android.R.id.list).setAdapter(適配器);而不是
+0

即使我刪除了適配器仍然顯示相同的異常。 –

+0

所以簡單的方法來解決這個問題:只需實現簡單的片段,列表片段不會帶來真正的便利。 – Benoit

相關問題