2013-02-13 25 views
5

Ich habe ein kleines Problem. Ich möchte Aktivität beginnen, aber auf andere Weise. Ich weiß, dassIntent und starten Aktivität von String

Intent i = new Intent(this, ActivityTwo.class); 

Absicht initialisieren und danach kann ich startActivity. Aber ich will etwas tun, wie folgt aus:

Intent i = new Intent(this, MyString.class); 

Ich habe keine nameActivity.class, aber ich möchte auf string.class ändern. Wie kann ich Aktivität starten, wenn ich den String-Namen der Klasse habe?

+0

Was genau ist das Szenario? Versuchen Sie, eine Aktivität basierend auf einem bestimmten STRING-Wert zu starten, der als Name für die auszuführende Aktivität verwendet wird? – Anukool

+1

http://stackoverflow.com/questions/5754855/how-cani-i-start-a-new-android-activity-using-a-string – baboo

+1

Sie können Reflexion verwenden, aber ist es wirklich notwendig? – Areks

Antwort

6

Versuchen Sie dies mit nachschlagen: startActivity(this, Class.forName(yourStringClass));

+0

Der Konstruktor Intent (TabsGenerator, Klasse ) ist auch undefiniert :) – user1302569

+0

versuche das Casting: '(Klasse ) Class.forName (" YourClass ")' – PaNaVTEC

+0

Absicht intent = neue Absicht (TabsGenerator.this, (Klasse ) Class.forName (StringClassname)); funktioniert auch nicht. Derselbe Fehler – user1302569

2

Sie können einen Class namentlich Class.forName("MyString")

6

Hier ist ein Code, mit dem Sie Aktivität mit dem Namen der Aktivität

Class<?> c = null; 
if(StringClassname != null) { 
    try { 
     c = Class.forName(StringClassname); 
    } catch (ClassNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 
Intent intent = new Intent(mail.this, c); 
startActivity(intent); 

beginnen Hier ist der Klassenname der vollständige Name der Klasse mit dem Paketnamen. Wenn Ihr Paketname beispielsweise x.y.z lautet und Sie den Aktivitätsnamen A haben, lautet der vollständige Name der Aktivität A x.y.z.A.

+0

Der Konstruktor Intent (TabsGenerator, Klasse ) Ist undefiniert – user1302569

+0

'Intent (TabsGenerator, Klasse );' zu 'Intent (TabsGenerator.this, Klasse ;' – jlopez

+0

habe ich das und immer noch die gleichen Fehler – user1302569

1


Class<?> c =Class.forName("YOUR STRING"); 
Intent intent = new Intent(FirstActivity.this, c); 
startActivity(intent); 
+0

Der Konstruktor Intent (TabsGenerator, Klasse ) Ist undefined – user1302569

+0

Ist das der Fehler, den Sie erhalten? – Anukool

+0

ja. Das ist ein Fehler, wenn ich diese Lösung verwende – user1302569

1

Verwenden Sie einfach ....

Intent intent = new Intent().setClassName(activity,"packageName"+"className"); 
    startActivity(intent); 
Verwandte Themen