每当我尝试构造ProgressBar时,它都会产生NullPointerException。网上的例子说第二个参数可以为null,即使它应该是AttributeSet?这可能是问题的一部分吗?这是针对Android 1.5的编译。
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 :(得分:0)
NPE是由您传递给构造函数的null AttributeSet参数引起的。
您可以尝试使用不同的构造函数,并使用主题设置控件样式:
ProgressBar p = new ProgressBar( new ContextThemeWrapper( context, R.style.MyTheme );
然后在res / values / 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的默认样式。