2013-02-25 39 views
0

當前我正在爲自己的用途開發一個庫。我在這個圖書館的課程名爲BaseWindow,我的圖書館項目也包括SlidingMenu項目作爲圖書館。當我嘗試從我的佈局文件夾中獲得listView時,我收到NullPointerException。我的類的構造是這樣的:在庫項目中給ListView充氣時發生Nullpointer異常

public class BaseWindow extends SlidingFragmentActivity { 

    private String windowTitle; 
    private int menuResourceId; 

    /** 
    * @param layoutResourceId identificator of the layout to inflate(R.layout.your_layout) 
    * @param menuResourceId identification of the menu to inflate(R.layout.your_menu) 
    * @param windowTitle title of this window 
    */ 
    public void InitializeWindow(int layoutResourceId, int menuResourceId, String windowTitle) { 

    ........... 
    ListView lv = (ListView)findViewById(R.id.menu_listview); 

    } 

} 

我知道像這樣的東西應該在onCreate方法來完成。但是在外面可以這樣做,就像我一樣嗎?當我拿着我的MousePointer在findViewById方法,它實際引用的方法在我的超

View com.slidingmenu.lib.app.SlidingFragmentActivity.findViewById(int id) 

SlidingFragmentActivity類擴展SherlockFragmentActivity

有誰知道是什麼原因導致這個問題?我的是我的lv對象。空值?我如何從這個庫類中獲得我的ListView?

回答

2

你應該誇大包含menu_listview第一個xml:

LayoutInflater inflater = LayoutInflater.from(context); 

View view = inflater.inflate(R.layout.xml_containing_listview); 

ListView lv = (ListView) view.findViewById(R.id.menu_listview); 

這僅僅是概念,我沒有測試此所以它可能無法正常工作。你也需要有一個上下文。

1

setContentView()onCreateactivity的方法非常重要,因爲它用於擴充佈局並收集其對象中的視圖和資源。但是在建立一個單獨的類和使用IDS的直接所以有3種方式這樣做不會虛增您的佈局

1)直接傳遞列表視圖非活動方法的方法

2)充氣佈局

LayoutInflater inflater = LayoutInflater.from(context); 
View externalView = inflater.inflate(R.layout.your_layout_containing_listview); 
ListView listView = (ListView) externalView .findViewById(R.id.menu_listview); 

3)直接充氣的佈局和使用它

LayoutInflater mInflater= (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
View externalView = mInflater.inflate(R.layout.your_layout_containing_listview, null); 
ListView listView = (ListView) externalView .findViewById(R.id.menu_listview); 

選擇哪些是最適合你的代碼

0

可能有幾個原因:

  1. InitializeWindow()被稱爲setContentView()之前,活動不具有佈局呢。

  2. Id menu_listview不存在於R.layout.***佈局誇大Activity。

  3. 您指的是來自錯誤包(應用程序vs庫)的R

相關問題