2013-01-07 2 views
1

내 응용 프로그램에서 ACB를 사용하고 있는데 수평 진행의 최대 값을 설정하는 데 약간의 문제가 있습니다. 이해할 수 있고 (인터넷에서 읽거나 읽음) 방법이 있습니다.ActionBarSherlock 프로그래밍 방식으로 가로 진행 막대 최대 값 설정

<item name="android:max">value</item> 

처럼 자신의 스타일로 수평 ProgressBar를 사용하여 XML을 설정하지만 내 응용 프로그램에서 나는 데이터를 다운로드하고 일부 값에 따라 사용자가 패킷/정보의 다른 종류를 다운로드 할 수 있습니다 난의 ProgressBar의 최대 값을 설정해야 프로그래밍 방식으로 최대 값은 크기에 따라 모든 패킷에서 변경됩니다.

모든 아이디어 어떻게 최대 값을 매번 늘릴 수 있고 그에 따라 진행률 막대의 현재 값을 계산할 수 있습니까?

도움 주셔서 감사합니다.

ProgressBar pg = new ProgressBar(getApplicationContext()); 
pg.setMax(100); 

셜록 progressbar를 들어이 샘플 코드를 사용할 수 있습니다 :

답변

1

의 최대 값을 설정 mProgress의 값을 설정 xml 스타일로 설정하는 것을 제외하고는 런타임시 가로 진행 막대의 최대 값을 업데이트 할 방법이 없음을 알 수 있습니다.

다른 사람이 해결책을 찾은 경우 답변하십시오.

1

이 코드를 사용해보십시오이 코드에서 나는 그래서 progressbar

import android.os.Bundle; 
import android.os.Handler; 
import android.view.View; 

import com.actionbarsherlock.app.SherlockActivity; 
import com.actionbarsherlock.view.Window; 

public class Progress extends SherlockActivity { 
    Handler mHandler = new Handler(); 
    Runnable mProgressRunner = new Runnable() { 
     @Override 
     public void run() { 
      mProgress += 2; 

      //Normalize our progress along the progress bar's scale 
      int progress = (Window.PROGRESS_END - Window.PROGRESS_START)/100 * mProgress; 
      setSupportProgress(progress); 

      if (mProgress < 100) { 
       mHandler.postDelayed(mProgressRunner, 50); 
      } 
     } 
    }; 

    private int mProgress = 100; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     setTheme(SampleList.THEME); //Used for theme switching in samples 
     super.onCreate(savedInstanceState); 

     //This has to be called before setContentView and you must use the 
     //class in com.actionbarsherlock.view and NOT android.view 
     requestWindowFeature(Window.FEATURE_PROGRESS); 

     setContentView(R.layout.progress); 

     findViewById(R.id.go).setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View arg0) { 
       if (mProgress == 100) { 
        mProgress = 0; 
        mProgressRunner.run(); 
       } 
      } 
     }); 
    } 
} 
+0

이 코드를 사용하면 새 ProgressBar를 만들고 있지만 requestWindowFeature (Window.FEATURE_PROGRESS);를 사용하여 추가 한 progressBar를 가져 와서 최대 값을 업데이트해야합니다. – hardartcore

관련 문제