先看代码再说问题package com.keruikang.item01;import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import android.app.ListActivity;
import android.app.ProgressDialog;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnDismissListener;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import android.widget.ArrayAdapter;
import android.widget.ListView;public class DiscoveryActivity extends ListActivity {
private Handler _handler = new Handler();
/* 取得默认的蓝牙适配器 */
private BluetoothAdapter _bluetooth = BluetoothAdapter.getDefaultAdapter();
/* 用来存储搜索到的蓝牙设备 */
private List<BluetoothDevice> _devices = new ArrayList<BluetoothDevice>();

public static final UUID MyUUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
public static BluetoothSocket btSocket;
private ProgressDialog pg = null; public static InputStream fis;
/* 是否完成搜索 */
private volatile boolean _discoveryFinished; // 启动一个进程开始搜索
public Runnable _discoveryWorkder = new Runnable() {
public void run() {
/* 开始搜索 */
_bluetooth.startDiscovery();
for (;;) {
if (_discoveryFinished) {
break;
}
try {
Thread.sleep(100);
} catch (InterruptedException e) {
}
}
}
}; // 搜索设备的广播监听器
private BroadcastReceiver _foundReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
/* 从intent中取得搜索结果数据 */
BluetoothDevice device = intent
.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
// 只添加相应的设备
if (device.getName().equals("creative wireless")) {
_devices.add(device);
} // /* 显示列表 */
showDevices();
}
};
private BroadcastReceiver _discoveryReceiver = new BroadcastReceiver() { @Override
public void onReceive(Context context, Intent intent) {
/* 卸载注册的接收器 */
unregisterReceiver(_foundReceiver);
unregisterReceiver(this);
_discoveryFinished = true;
}
}; protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
setContentView(R.layout.discovery); /* 注册接收器 */
IntentFilter discoveryFilter = new IntentFilter(
BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
registerReceiver(_discoveryReceiver, discoveryFilter);
IntentFilter foundFilter = new IntentFilter(
BluetoothDevice.ACTION_FOUND);
registerReceiver(_foundReceiver, foundFilter);
/* 显示一个对话框,正在搜索蓝牙设备 */
SamplesUtils.indeterminate(DiscoveryActivity.this, _handler,
"设备搜索中...", _discoveryWorkder, new OnDismissListener() {
public void onDismiss(DialogInterface dialog) {
for (; _bluetooth.isDiscovering();) {
_bluetooth.cancelDiscovery();
}
_discoveryFinished = true;
}
}, true);
} /* 显示列表 */
protected void showDevices() {
List<String> list = new ArrayList<String>();
if (_devices.size() == 0) {
StringBuilder b = new StringBuilder();
b.append("没有搜索到设备");
list.add(b.toString());
} else {
for (int i = 0, size = _devices.size(); i < size; ++i) {
StringBuilder b = new StringBuilder();
BluetoothDevice d = _devices.get(i);
b.append(d.getAddress());
b.append('\n');
b.append(d.getName());
String s = b.toString();
list.add(s);
}
} final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, list);
setListAdapter(adapter);
} // 响应列表点击事件
protected void onListItemClick(ListView l, View v, int position, long id) {
String address = _devices.get(position).getAddress();
BluetoothDevice btDev = _bluetooth.getRemoteDevice(address);
pg = new ProgressDialog(DiscoveryActivity.this);
pg.setTitle("连接中");
pg.setMessage("请等待...");
pg.show();
try {
// Boolean returnValue = false;
switch (btDev.getBondState()) {
case BluetoothDevice.BOND_NONE:
// 利用反射方法调用BluetoothDevice.createBond(BluetoothDevice
// remoteDevice);
Method createBondMethod = BluetoothDevice.class
.getMethod("createBond");
Log.d("BlueToothTestActivity", "开始配对");
createBondMethod.invoke(btDev);
break;
case BluetoothDevice.BOND_BONDED:
btSocket = btDev.createRfcommSocketToServiceRecord(MyUUID);

System.out.println("开始连接     " + btDev.getAddress());

btSocket.connect();

System.out.println("连接完成,进度条消失");
pg.dismiss();

fis = btSocket.getInputStream();
MainActivity.setfis(fis);
finish();
break;
}
} catch (Exception e) {
Log.d("BlueToothTestActivity", "连接失败...");
e.printStackTrace();
}
} public static InputStream ret_fis() {
return fis;
} public static void Myquit() throws IOException{
fis.close();
btSocket.close();
}
}我想要在System.out.println("开始连接     " + btDev.getAddress());
btSocket.connect();
System.out.println("连接完成,进度条消失");
这里弹出一个圆圈那样的进度条提示  但是这样并没有显示出来
这个类是在MainActivity当中按钮的监听事件中跳转过来的
Intent enabler = new Intent(MainActivity.this,DiscoveryActivity.class);
MainActivity.this.startActivity(enabler);怎么样才能调用ProgressDialog提示显示一个提示

解决方案 »

  1.   

    1、无图2、未看到用调用ProgressDialog的代码噢
      

  2.   

                    ProgressDialog dialog = new ProgressDialog(this);
                    dialog.setTitle("Connecting...");
                    dialog.setMessage("Please wait while connecting...");
                    dialog.setIndeterminate(true);
                    dialog.setCancelable(true);
                    dialog.show();不懂的控件看看API Demos和官方文档就明白了