0

beginListenForData別の関数()で使用するために、この関数()に最終的な文字列'data'を取得するにはどうすればよいuploadですか?BeginListenBluetoothからデータを取得します...

  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」を呼び出し、それを必要なものに等しく設定することで、探しているものを達成できます。

アップロード関数を呼び出すときに現在「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 に答える