2016-05-01 6 views
-1
private void sendNotification(String message, String uri) { 
    Intent intent = new Intent(this, xxx.class); 

"xxx.class"を変数uriを使用してこのアクティビティを開始するにはどうすればよいですか? GCMプッシュ通知に変数「メッセージ」を送信するwebviewを使用しています。また、さまざまなアクティビティを開いています。指定された文字列に応じてアクティビティを開始しますか?

私はこれを行う場合、私は、Android Studioで「コンストラクタを解決することはできません」を取得:

Intent intent = new Intent(this, uri); 
+0

インテントフィルタリングを活用してみてください。詳細はこちら[http://developer.android.com/guide/components/intents-filters.html#Resolution]をご覧ください。 – torque203

+0

インテントオブジェクトには、パラメータとして2つの文字列を取るコンストラクタがありません。それは、文字列とaをとる[コンストラクタ](http://developer.android.com/reference/android/content/Intent.html#Intent(java.lang.String、%20android.net.Uri))を持っていますUriをパラメータとする。 – chRyNaN

+0

私に例を挙げてもらえますか? – AlexioVay

答えて

2

私はあなたが修正理解していれば、あなたが必要なものを手に入れるClass.forName()メソッドを使用することができます。

だから、次のようになります。

Intent intent = new Intent(this, Class.forName(xxx)); 

しかしtry/catchブロックとそれを囲むことを忘れないでください。

+0

完璧、ありがとう! – AlexioVay

2

Class.forName()を呼び出すときは、拡張子なしでクラス名を使用する必要があります。あなたのクラスがたとえばMyTestパッケージでmytestpackage.testsパッケージに含まれている場合は、次を使用してください。

Class.forName("mytestpackage.tests.MyTest") 
+0

ありがとう、両方の助言が私を助けました! – AlexioVay

関連する問題