2011-10-31 14 views
36

मैं एडाप्टर में गतिविधि के context गुजर के साथ करने की कोशिश की और फिर मैं context.finish(); की कोशिश की लेकिन एक activity पैरामीटर के रूप में अपनी गतिविधि गुजर प्रयास करें, तो आप उस पर finish() कॉल करने के लिए सक्षम हो जाएगा इसकी मेरे जैसे The method finish() is undefined for the type Contextएडाप्टर से गतिविधि कैसे समाप्त करें ..?

+0

नीचे दिए गए लिंक का उपयोग करें। मुझे आशा है कि यह आपके problrm https://stackoverflow.com/questions/33972621/cannot-use-finish-inside-adapter – user6789978

उत्तर

145

टाइप गतिविधि के साथ इसे कास्ट करें।

((Activity)context).finish(); 
+0

को हल करेगा, धन्यवाद, यह एक आकर्षण की तरह काम करता है। – Janpan

+0

विवरण के लिए उत्तर के लिए –

2

एक त्रुटि है। उम्मीद है की यह मदद करेगा।

2

निम्न कोड के साथ प्रयास करें: अपने एडाप्टर getView()

btn.setOnClickListener(new Button.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     ((YourActivityName)myContext).yourDesiredMethod(); 

    } 
}); 
+0

thx के लिए अच्छा काम करता है @ raul_zevahc –

0

कोड नीचे समाप्त उपयोग कॉल करने के लिए अपने कस्टम एडाप्टर कोशिश में में

public YourAdapterName(......,Context context){ 

... 

this.myContext=context; 
} 

और

((Activity)context).finish(); 
0

मैंने इसका उपयोग नहीं किया है लेकिन मुझे उम्मीद है कि यह काम करेगा। उपयोग: "this.recreate()" यदि आप इसे गतिविधि के भीतर से पुनः लोड करना चाहते हैं।

अगर आप एडाप्टर से यह तो फिर से लोड करना चाहते हैं का उपयोग करें: "((गतिविधि) संदर्भ) .recreate()"

+0

अब मैंने इसे चेक किया है। यह ठीक काम कर रहा है। – neens

0

पास गतिविधि प्रपत्र कक्षा कस्टम एडाप्टर सिर्फ विधि में

@Override 
    public void onClick(View v) { 
    MyApplication.value=mCompany.getCompanyId(); 
    Intent intent = new Intent(MyApplication.context, VaasetActivity.class); 
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    intent.putExtra("ID_COMPANY",mCompany.getCompanyId()); 
    MyApplication.context.startActivity(intent); 
    ((Activity)context).finish(); 
    } 
}); 
संबंधित मुद्दे