久しぶりに、ボタンが押されている間にプログレスバーを更新する方法を知りました。このコードは、ジンジャーブレッドでは機能しません。他のすべてのOSは正常に動作します。ご不明な点がございましたら、お楽しみください!!!!
button.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
if(arg1.getAction()==MotionEvent.ACTION_DOWN){
arg0.post(rotationRunnable);
}
return false;
}
});
RotationRunnable メソッド :-
private Runnable rotationRunnable = new Runnable() {
@Override
public void run() {
if (button.isPressed()) {
try{
if(mProgressStatus<100){
Thread.sleep(500);
mProgressStatus = doWork();
pB.setProgress(mProgressStatus);
}
}catch(Exception e) {
e.printStackTrace();
}
button.postDelayed(rotationRunnable, 40);
}
}
};
最後に DoWork メソッド :-
private int doWork() {
// TODO Auto-generated method stub
Timer t=new Timer();
t.schedule(new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
mProgressStatus=mProgressStatus+1;
}
}, 1000);
time=mProgressStatus;
return mProgressStatus;
}