首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

关于一个ProgressDialog有关问题

2012-09-22 
求助 关于一个ProgressDialog问题先看代码再说问题Java codepackage com.keruikang.item01import java.io

求助 关于一个ProgressDialog问题
先看代码再说问题

Java code
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、无图

2、未看到用调用ProgressDialog的代码噢
[解决办法]
ProgressDialog dialog = new ProgressDialog(this);
dialog.setTitle("Connecting...");
dialog.setMessage("Please wait while connecting...");
dialog.setIndeterminate(true);
dialog.setCancelable(true);
dialog.show();

不懂的控件看看API Demos和官方文档就明白了

热点排行