2013-11-27 5 views
38

को हल नहीं कर सकता है मेरे पास पहले श्रेणी में फ्रैगमेंट विस्तारित है, और दूसरी कक्षा विस्तार गतिविधि है।एंड्रॉइड इरादा कन्स्ट्रक्टर

मेरे टुकड़ा ठीक काम कर रहा है, और टुकड़ा में आशय के लिए मेरे कोड है:

ImageButton button= (ImageButton) getView().findViewById(R.id.button); 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent myIntent = new Intent(MyFragment.this, MyClass.class); 
      MyFragment.this.startActivity(myIntent);   } 
    }); 

मेरे वर्ग MyClass कोड है:

public class MyClass extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     // The activity is being created. 
    } 

    @Override 
    protected void onStart() { 
     super.onStart(); 

     setContentView(R.layout.MyClass); 
    } 
} 

त्रुटि है:

Gradle: cannot find symbol constructor Intent(com.xxxx.xxxx.MyFragment,java.lang.Class<com.xxxx.xxxx.MyClass>)

मुझे नहीं पता कि मैं कहां गलत हुआ था।

उत्तर

105

उपयोग

Intent myIntent = new Intent(v.getContext(), MyClass.class); 

या

Intent myIntent = new Intent(MyFragment.this.getActivity(), MyClass.class); 

एक नई गतिविधि शुरू करने के लिए। ऐसा इसलिए है क्योंकि जब आप अपने आवेदन के विशिष्ट घटक के लिए एक इरादा बना रहे हैं तो आपको इरादे कन्स्ट्रक्टर के पहले पैरामीटर के रूप में एप्लिकेशन या घटक संदर्भ को पास करने की आवश्यकता होगी।

+5

'आशय आशय = नए आशय (getApplicationContext(), myClass.class);' – ArtiomLK

+0

धन्यवाद एक बहुत। लेकिन यह मुख्य एंड्रॉइड संसाधनों में कहीं भी उपलब्ध नहीं है? –

+0

@ क्रुगर ब्रेंट आपको किसी ऐसे व्यक्ति से पूछना चाहिए जो "मुख्य एंड्रॉइड संसाधन" के लिए ज़िम्मेदार है। मुझे विश्वास नहीं है कि वे स्टैक ओवरफ्लो पढ़ते हैं या कम से कम नियमित आधार पर नहीं। –

0

आप इरादे बनाने के लिए Intent's Context का उपयोग नहीं कर सकते हैं। तो आप के रूप में नीचे दिखाया गया है तो आप बस गतिविधि शुरू कर सकते हैं अपने Parent ActivityContext

Intent intent = new Intent(getActivity(),MyClass.class); 
3

उपयोग करने की आवश्यकता या;

startActivity(new Intent(currentactivity.this, Tostartactivity.class)); 
+0

"या"? क्या जिक्र है? मैं यहां कुछ भी नहीं देख सकता जो कम सरल है ... –

0

आप इस का उपयोग कर सकते हैं:

Intent intent = new Intent(getApplicationContext(), ClassName.class); 
संबंधित मुद्दे