Как я это сделал
StaticCommonDataClass
-> здесь хранятся статические данные, я буду хранить экземпляр Activity номер один.
ActivityOneClass
-> Содержит метод, к которому я должен обратиться в ActivityTwo.
ActivityTwoClass
=> Доступ к методу ActivityOne.
То, что я ненавижу, это передавать два параметра из одной функции в другую функцию или из одного класса в другой класс,
это также, когда это должно быть сделано для подобных значений снова и снова.
Здесь я буду хранить ссылку ActivityOneClass в static Variable.
public class CommonStaticData {
private static Activity _activity;
private static Context _context;
public static void setactivity(Activity activity) {
_activity = activity;
}
public static Activity getactivity() {
return _activity;
}
public static void setcontext(Context context) {
_context = context;
}
public static Context getcontext() {
return _context;
}
}
public class ActivityOneClass extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity1);
CommonStaticData.setactivity(ActivityOneClass.this); //will keep the instance alive for this activity
}
Public void activityOneMethod()
{
//Set of statements
}
}
public class ActivityTwoClass extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity2);
((ActivityOneClass) CommonStaticData.getactivity()).activityOneMethod();
//we need to typecast the instance stored in CommonStaticData.getactivity() to "ActivityOneClass" thats is the
//activity containing the method so as to access the method otherwise it will not come in the intellisense window and will generate Compiler Error
}
}