2016-06-24 5 views
4

Я использую эту библиотеку, чтобы создать круговой индикатор выполнения для моего износа в android (https://github.com/lzyzsd/CircleProgress). Я создал макет, в котором определен круговой прогресс.использовать круговой индикатор выполнения в качестве alertdialog или progressdialog

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:custom="http://schemas.android.com/apk/res-auto" 
    android:orientation="vertical" 
    android:background="#000000" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 

    android:id = "@+id/progress_layout_id"> 
    <com.github.lzyzsd.circleprogress.ArcProgress 
     android:id="@+id/m_arc_progress" 
     android:layout_width="214dp" 
     android:layout_height="match_parent" 
    /> 

</LinearLayout> 

Я хочу, чтобы этот макет, в котором круглый Progressbar определен как всплывающее окно alertdialog или прогресс. Я смог это сделать. Это код для этого.

public class progressbar_fragment extends AlertDialog { 
    ArcProgress m_arc; 
    View v; 
    int mProgressVal; 
    Context mContext; 

    protected progressbar_fragment(Context context) { 
    super(context); 
    mContext = context; 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    m_arc = (ArcProgress) findViewById(R.id.m_arc_progress); 


    if (mProgressVal > 0) { 
     setProgress(mProgressVal); 
    } 
} 

@Override 
public void show() { 
    super.show(); 
    setContentView(R.layout.pogress_bar); 
} 

И я зову его в файл класса, как

m_arc = new progressbar_fragment(m_caller_context); 
    m_arc.show(); 

Так круговое прогрессбар выглядит как alertdialog. Теперь я хочу установить прогресс, когда он проходит через код. Может кто-нибудь, пожалуйста, назовите меня, как я могу это сделать, функция прогресса существует в коде библиотеки.

Там должен быть какой-то способ, как

m_arc_progress = (ArcProgress) l_progress_layout.findViewById(R.id.m_arc_progress); 
    m_arc_progress.setProgress(0); 

Временами он просто работает для первоначального дела и когда я пытаюсь сделать

m_arc_progress.setProgress(25); 

Он показывает мне ошибку

> java.lang.NullPointerException: Attempt to invoke virtual method 
> 'android.view.View android.view.Window.findViewById(int)' on a null 
> object reference 

Пожалуйста помогите, что делать.

+0

OMG. Что с именованием. Это очень трудно читать. Проверьте соглашение об именовании для android – thealeksandr

ответ

1

вы установили setContentView(R.layout.pogress_bar); после того, как будет показан диалог, вы должны установить его в OnCreate(), прежде чем сделать findViewById

+0

Но все же как я могу изменить значение setprogress по мере продвижения кода. Потому что я не могу вызвать onCreate каждый раз – MJ123