2011-05-19 60 views
3

每當我嘗試構建ProgressBar時,它都會給出NullPointerException。網上的例子說第二個參數可以是null,即使它應該是AttributeSet?這可能是問題的一部分嗎?這是針對Android 1.5編譯的。Android新的ProgressBar沒有NullPointerException?

public class myListAdapter implements ListAdapter { 

... 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    Log.d(TAG,"getView"); 
    LinearLayout view = new LinearLayout(context); 
    //This new ProgressBar causes N.P.E.: 
    ProgressBar p = new ProgressBar(context, null,android.R.attr.progressBarStyleSmall); ; 
    view.addView(p); 
    return view; 
} 

回答

0

NPE是由傳遞給構造函數的null AttributeSet參數引起的。

你可以嘗試使用不同的構造函數,並使用一個主題樣式的控制:

ProgressBar p = new ProgressBar(new ContextThemeWrapper(context, R.style.MyTheme); 

然後定義在res /價值觀主題/的themes.xml:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="MyTheme" parent="@android:style/Theme"> 
     <item name="android:progressBarStyle">@android:style/Widget.ProgressBar.Small</item> 
    </style> 
</resources> 

這基本上是當MyTheme應用於ProgressBar時,會覆蓋ProgressBar的默認樣式。

+0

我發現有什麼問題,我用新的myListAdapter(ArrayListVariable)而不是正確的myListAdapter(this.getApplicationContext(),ArrayListVariable)調用它。 – anonymous 2011-05-20 03:33:33