2012-01-05 12 views
0

私はクラスのString名をArrayListに持っています。androidはclass.forNameでインテントを使用します

私はこのような意思呼び出そう:

Intent intent = new Intent(context, MultipleChoice.class); 
        context.startActivity(intent); 

それは問題なく動作しますが、私はこのようにそれを行うにしたいとき、私はClassFoundExceptionを取得します。 config.getTests(config.getPage()))"MultipleChoice"が返されます。

try { 
    Intent intent = new Intent(context, Class.forName(config.getTests(config.getPage()))); 
    context.startActivity(intent); 
    context.finish(); 
} catch (ClassNotFoundException e) { 
    e.printStackTrace(); 
} 

なぜこのようなのですか?

+1

あなたが得るエラーは、ClassFoundExceptionではなくClassNotFoundExceptionです。 – kosa

+2

私はconfig.getTests(....)は、com.xyz.MultipleChoiceのように、クラス名がパッケージであるべきだと思います。まず、Class.forName(..)でこれをハードコーディングしてみてください。それが動作すれば、あなたはconfig.getTest(....)からそれを得る方法を見つけることができます – kosa

+1

bla.bla.bla.full.name.with.package.is.needed.MultipleChoice ...編集:ありがとうthinksteep ...あなたは最初だった:) – Selvin

答えて

3

config.getTests(....)は、パッケージにクラス名を指定する必要があります(例:com.xyz.MultipleChoice)。最初にClass.forName(..)でハードコーディングを試してみてください。それがうまくいくなら、あなたはそれを得る方法を見つけることができますconfig.getTest(....)

関連する問題