0

如何将最终字符串“数据”放入此函数beginListenForData()以供另一个函数upload()使用?BeginListen从蓝牙获取数据...

  void beginListenForData()
  {
  final Handler handler = new Handler(); 

  workerThread = new Thread(new Runnable()
  {
      public void run()
      {              
              try {        
                        final String data = new String(encodedBytes, "US-ASCII");
                        readBufferPosition = 0;
                        //data2=data;
                              handler.post(new Runnable()
                              {
                                  public void run()
                                  {
                                      myLabel.setText(data);    
4

2 回答 2

0

我在谷歌上查看了你的代码,我想问:

你为什么要在 ListenBt() 中重新声明“数据”而不是操作全局最终数据变量?

编辑: 你不能通过重新分配别名来操纵最终变量,你会得到一个异常。
...好吧,也许有反思,但那是作弊!

您可以通过调用“this.data”来实现您正在寻找的内容,而 data 是一个公共全局变量并将其设置为所需的内容。

如果您在调用上传函数时当前得到“0”,这意味着它正在引用全局最终变量数据,而不是在 ListenBt() 中所做的。

于 2012-12-18T18:22:59.503 回答
0

将数据作为字段而不是局部变量。

 String data;

 void beginListenForData()
  {
  final Handler handler = new Handler(); 

  workerThread = new Thread(new Runnable()
  {
      public void run()
      {              
              try {        
                        data = new String(encodedBytes, "US-ASCII");
                        readBufferPosition = 0;
                        //data2=data;
                              handler.post(new Runnable()
                              {
                                  public void run()
                                  {
                                      myLabel.setText(data);    
于 2012-12-18T13:25:39.920 回答