OnClickListener के अंदर मैं इस तरह के अधिकांश "चर" दायरे के बाहर नहीं जा सकता, जैसे:
findViewById(R.id.Button01).setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
Intent mainApps = new Intent(Intent.ACTION_MAIN);
mainApps.addCategory(Intent.CATEGORY_LAUNCHER);
List<ActivityInfo> activities = this.getPackageManager().queryIntentActivities(mainApps, 0);
/*
Intent intent = new Intent("com.sygic.drive/com.sygic/drive/.SygicDriveActivity");
startActivity(intent);*/
}
});
इस उदाहरण में मुझे PacketManager को प्राप्त करने की आवश्यकता है, और मैं इसे प्राप्त नहीं कर सकता क्योंकि मेरे पास OnClickListener के अंदर संदर्भ उपलब्ध नहीं है।
मैं बाहर एक स्थैतिक संदर्भ बना सकता हूं, और इसे अंदर उपयोग कर सकता हूं, लेकिन क्या यह सही है? हर समय ऐसा करना अजीब लगता है?