2017-06-21 9 views
0

Activity AからActivity Bにデータを渡す必要があります。Activity Aには、Bluetooth接続を管理している初期化クラスのメソッドがあり、アクティビティAのメソッドが既に初期化しているため、そのクラスをActivity Bから初期化できません。バックグラウンドで2つのアンドロイド活動間でデータを交換して、ブルートゥース経由でデータを送信するにはどうすればいいですか?

私はstaticを作るために必要なメソッドを作ってみましたが、静的メソッドから、私は私のbluetoothのクラスからnon-staticメソッド呼び出しカント:だから私の質問

public static void setup(String address) { 
      bt = new Bluetooth(this, handler); 
      outStringBuffer = new StringBuffer(""); 
      bt.startConn(address); 
     //Java throws error that bt is non-static 
    } 

を:

  1. がありますnon-staticの場合にsetup()を別のクラスから呼び出す方法はありますか?
  2. 答えがの場合ははどうですか?または、答えがの場合、メソッドを呼び出さずにデータを渡す方法。

は、私はBluetooth経由でデータを送信し、私のBluetoothクラスからメソッドを呼び出す必要がありますActivity BAに多くの時間とActivity Aからデータを送信する必要があるためstartActivityForResult()またはstartActivity()は、この問題を解決しないことに注意してください。

P.S私はViewFlipperで方法を見つけましたが、私の場合、これは2つのクラスをマージするには複雑すぎます。 Activity BからBluetoothクラスにデータを直接送信することはできません。Activity Aは既にソケットを開いており、Javaでは起動アクティビティなどの例外がスローされるためです。

+0

アクティビティから渡そうとしているデータのタイプ –

+0

文字列変数を渡したい –

答えて

0

あなたの受信活動のその後非常に素晴らしいですOK ...アクティビティ2に活動1から文字列を渡すためにあなたが

これに合格して取得するための方法を必要とし、インテント

public void setUp (String address) { 
/* start an intent to pass the string data*/ 
Intent intent = new Intent(GridViewActivity.this,  MovieDetailActivity.class); 

/* use the intent object to pass string to another activity using putExtra method */ 

intent.putExtra("your string"); 
start intent(intent); 
} 

使用getStringExtra

final String original_title =  getIntent().getStringExtra("your string"); 

の場合、IntentとPutExraとgetIntentとgetStringExtraメソッドを使用してアクティビティからこの変数パスを使用できます。

これ以上Googleを実行することはできません。インテントを使用したアクティビティからのデータの受け渡し。

関連する問題