は、あなたが文字列を持っているとしましょう:のAndroid Studioで、クラス名として「動的」の文字列を渡す
String string_name; //assign whatever value
そして、あなたが意図を持っている:これは明らかに動作しません
Intent i = new Intent(getApplicationContext(), string_name.class);
。 ASは文字列名をクラスとして認識しません(ただし、ITフォルダーはメインフォルダー内のアクティビティーとして存在します)。 fornameメソッドは私のためにも機能しませんでした(私が間違っていない限り)。
私はname1、name2、name3などに記載されている10のアクティビティ/クラスを持っています。そして、それぞれのアクティビティを終えた後、プログラムは「遷移」アクティビティページに行き、次のアクティビティにリダイレクトします。実行時間。ユーザーがname1アクティビティを実行すると、プログラムは彼を「遷移」ページにリダイレクトします。その後、私はname2アクティビティにそれらを送信しようとしています。等々。
"Transition"アクティビティ/クラスのname1、name2、activitiesの名前を文字列(この場合はstring_name)に割り当てます。数行のコードの後に、name1の名前を取得し、name2に変更して文字列に格納しました。しかし、Android Studioはクラス値として「動的」文字列を受け入れません。
思考?更新
にClass.forName(string_name)はまだ赤い下線が引かれていると、 "未処理の例外は:java.lang.ClassNotFoundExceptionが" 言う –
あなたはのtry-catchにあなたのコードを入れて、この問題解決することができます:=「com.your_package 文字列string_nameを。 TestActivity "; try { クラス> classByName = Class.forName(string_name); インテントi =新しいインテント(this、classByName.class); } catch(ClassNotFoundException e){ Log.e( "YourParentClassName"、 "システムは指定された名前のクラスを見つけることができません:" + string_name); } – Gaket
を使用してください。try catch @master_of_privates –