Android новый ProgressBar без NullPointerException? - PullRequest
3 голосов
/ 19 мая 2011

Всякий раз, когда я пытаюсь создать ProgressBar, он дает исключение NullPointerException. Примеры в сети говорят, что второй параметр может быть нулевым, даже если предполагается, что это 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;
}

1 Ответ

0 голосов
/ 19 мая 2011

NPE вызывается нулевым параметром 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>

Это в основном переопределяет стиль по умолчанию для ProgressBar, когда к нему применяется MyTheme.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...