2011-10-29 11 views
5

में कनवर्ट करें मैं एक स्ट्रिंग से Activity कक्षा बनाने की कोशिश कर रहा हूं और इसे एक स्थिर विधि में पास कर रहा हूं। मैंने इसे कक्षा में एक स्ट्रिंग पास करने के लिए SO पर पाया। FirstActivity पहले से ही बनाया गया है।एक स्ट्रिंग को एक गतिविधि वर्ग

SecondActivity

String myClass = "com.package.FirstActivity"; 
Class<?> myClass = Class.forName(myClass); 
//this works 
//Intent myIntent = new Intent(getApplicationContext(), myClass); 
//I want to pass to a static method, but it gives a error. Class cannot cast to Activity 
StaticMethod.processThis(myClass , "test"); 

StaticMethod

public static void processThis(Activity contextActivity, String str) { 
    //do processing 
} 

मैं processThis काम करने के लिए कैसे मिल सकता है? अगर मैं सही ढंग से समझता हूं, तो Activity भी एक कक्षा है?

+0

आपकी समस्या क्या है? क्या आप अपने आवेदन में एक निश्चित समस्या को हल करना चाहते हैं या उपर्युक्त कोड बनाना चाहते हैं? – Oybek

+0

मैं अपनी 'प्रक्रिया इस विधि को काम करना चाहता हूं। मेरा प्रश्न स्पष्ट बना दिया। – newbie

+0

आपको डालने की ज़रूरत है। –

उत्तर

6

आपको फर्स्टएक्टिविटी का एक नया उदाहरण बनाने की आवश्यकता है। यदि इस वर्ग में कोई कथन नहीं है तो आप निम्न कार्य कर सकते हैं:

String myClass = "com.package.FirstActivity"; 
Class<?> myClass = Class.forName(myClass); 
Activity obj = (Activity) myClass.newInstance(); 
Intent myIntent = new Intent(getApplicationContext(), myClass); //Maybe here also obj must be needed 

//Noe pass your object here 
StaticMethod.processThis(obj, "test"); 
+1

धन्यवाद की कोशिश की! यह वही था जो मैं ढूंढ रहा हूं। मैं वर्ग को गतिविधि में डालने का कोई रास्ता नहीं ढूंढ सका। – newbie

+0

लेकिन बाद में अपनी संरचना को बदलने के बारे में भी मत सोचें: - / – Isabelle

संबंधित मुद्दे