2014-06-07 49 views
-1

我想在我的項目中使用此示例http://www.androidhive.info/2013/07/android-expandable-list-view-tutorial/。 主要問題是: 我有ListFragment而不是常規Activity。 我放了幾個getActivity().findViewByID而不是findViewByIDgetActivity().getApplicationContext()而不是this片段中的可擴展ListView,(來自AndroidHive)

應用程序崩潰,在

// setting list adapter 
    expListView.setAdapter(listAdapter); 

我在Android開發人員只是新手。有人可以解釋如何修改ListFragment的例子。

+0

你的expListView爲null。 –

回答

0

expListView是在你的代碼無效,你需要你的觀點,即尋找替代getActivity() Expanable觀onCreateView返回。

使用類似以下內容:

expListView = YourView.findViewById(yourId); 

如果這沒有幫助你,交logcat的錯誤和碎片代碼

示例代碼:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     View test= inflater.inflate(R.layout.testLayout, 
       container, false); 
     expListView = test.findViewById(R.id.expanableId); 


     return test; 
} 
+0

它的作品,但現在「返回MyView」應用程序崩潰後。說06-07 06:31:41.700 1222-1222/com.example.moneybag.moneybag E/AndroidRuntime:致命例外:主 java.lang.RuntimeException:您的內容必須有一個ListView的id屬性是'android.R。 id.list' – OKK

+0

當你使用'ListFragment'時,如果你不想把'ListFragment'改成'Fragment',你必須在你的xml佈局中有'android.R.id.list'的listView。 –

+0

謝謝!有用! – OKK

0

嘗試以下

更改ExpandableListView id在xml中。

應該是這樣android:id="@+id/lvList"

將它作爲你的Java文件ExpandableListView expListView = Your_View.findViewById(R.id.lvList);