我正在尝试创建一个不需要显示百分比的进度条。
public boolean onOptionsItemSelected( MenuItem item ) {
switch( item.getItemId() ) {
case R.id.back:
this.dispatchKeyEvent( new KeyEvent( KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK ) );
finish();
return true;
case R.id.read:
// This is where I would start my spinner....
if( myService.getState() != 3 ) {
myService.connect( MainMenu.previousDevice, true );
}
readWaves();
return true;
default:
return super.onContextItemSelected( item );
}
}
微调器将在 readWaves() 函数中自行停止...
private void readWaves() {
waveResults = RelayAPIModel.NativeCalls.GetWavesJava( RelayAPIModel.WAVES_V );
// Turn the Spinner off Here.
doOtherThings();
}
我发现大量代码告诉我如何使用线程使用进度条、在 xml 文件中添加进度条以及许多其他方法。
我认为对我来说最好的方法是创建一个 CustomDialog 类来弹出并让微调器旋转,直到我打电话结束它。
这里显示的第一个答案是迄今为止我找到我想要的最接近的答案,但不幸的是他的解决方案不起作用。它不起作用的原因是因为最后一段代码:
public MyProgressDialog(Context context) {
super(context, R.style.NewDialog);
}
我使用的是 Android 2.3 并且style
没有R
. 我尝试自己添加它并得到一个错误。有谁知道如何解决这一问题?
编辑:
这是我尝试使用的代码ProgressDialog
case R.id.read:
pDialog = new ProgressDialog( Waves.this );
pDialog.setTitle( "Waves" );
pDialog.setMessage( "Reading..." );
pDialog.show();
if( myService.getState() != 3 ) {
myService.connect( MainMenu.previousDevice, true );
}
readWaves();
return true;
default:
return super.onContextItemSelected( item );
}
}
private void readWaves() {
if( spinnerChoice == 0 ) {
Log.i( "IN IF", "IN IF" );
// Diff Voltage
waveResults = RelayAPIModel.NativeCalls.GetWavesJava( RelayAPIModel.WAVES_V );
} else {
// Current
waveResults = RelayAPIModel.NativeCalls.GetWavesJava( RelayAPIModel.WAVES_I );
}
Log.i( "READ WAVES", "After If/Else" );
pDialog.dismiss();
/*