2013-02-13 27 views
5

से इरादा और प्रारंभ गतिविधि मुझे एक छोटी सी समस्या है। मैं गतिविधि शुरू करना चाहता हूं लेकिन किसी अन्य तरीके से। मुझे पता है किस्ट्रिंग

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

इरादे को प्रारंभ और उसके बाद मैं startActivity कर सकते हैं। लेकिन मैं ऐसा ही कुछ करना चाहते हैं:

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

मुझे कोई nameActivity.class है, लेकिन मैं string.class पर बदल चाहते हैं। जब मैं कक्षा का स्ट्रिंग नाम रखता हूं तो मैं गतिविधि कैसे शुरू कर सकता हूं? startActivity(this, Class.forName(yourStringClass));

+0

वास्तव में क्या परिदृश्य है? क्या आप कुछ STRING मान के आधार पर एक गतिविधि शुरू करने की कोशिश कर रहे हैं जिसका उपयोग गतिविधि के नाम के रूप में किया जाएगा? – Anukool

+1

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

+1

आप प्रतिबिंब का उपयोग कर सकते हैं लेकिन क्या यह वास्तव में आवश्यक है? – Areks

उत्तर

6

इस प्रयास करें नाम से एक Class देख सकते हैं यहां क्लास का नाम पैकेज नाम के साथ कक्षा का पूरा नाम होगा। उदाहरण के लिए यदि आपका पैकेज नाम x.y.z होगा और यदि आपके पास ए नामक गतिविधि नाम है तो गतिविधि ए का पूरा नाम x.y.z.A होगा।

+0

निर्माता आशय (TabsGenerator, कक्षा ) अपरिभाषित है भी :) – user1302569

+0

कास्टिंग की कोशिश: '(कक्षा ) Class.forName (" YourClass ")' – PaNaVTEC

+0

आशय आशय = नए आशय (TabsGenerator.this, (कक्षा) Class.forName (StringClassname) <फैली गतिविधि?>); भी काम नहीं करता है। वही त्रुटि – user1302569

2

आप का उपयोग Class.forName("MyString")

6

यहाँ एक कोड है जिसके द्वारा आप गतिविधि

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); 

के नाम का उपयोग गतिविधि शुरू कर सकते हैं:

+0

कन्स्ट्रक्टर इरादा (टैबस जेनरेटर, क्लास <कैप्चर # 3-ऑफ?>) अनिर्धारित है – user1302569

+0

इसे बदलें: '(TabsGenerator, कक्षा ) आशय;' को 'आशय (TabsGenerator.this, कक्षा <कब्जा # 3-का?>;' – jlopez

+0

मुझे लगता है कि है और अब भी वही त्रुटि – user1302569

1


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

कन्स्ट्रक्टर इंटेंट (टैबस जेनरेटर, क्लास <कैप्चर # 2-ऑफ?>) अनिर्धारित है – user1302569

+0

क्या यह त्रुटि आपको मिल रही है? – Anukool

+0

हाँ। यह त्रुटि है जब मैं उस समाधान का उपयोग करता हूं – user1302569

1

बस का उपयोग ....

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