Android更新在另一个活动上调用onBackPressed时的活动
正如标题所暗示的,我的目标是在另一个Activity
“AddActivity
”被反向按下时更新一个Activity
“MainActivity
”上的一些变量。目前,我可以在MainActivity
上更新变量的唯一方法是创建一个新的实例,我不想这样做。我希望变量的更新发生在已经实例化的MainActivity
上。一些代码片段都低于:Android更新在另一个活动上调用onBackPressed时的活动
public class AddActivity extends MainActivity {
....
@Override
public void onBackPressed() {
super.onBackPressed();
updateMain();
}
}
public class MainActivity extends Activity {
....
// This gets executed when the Activity gets created
@Override
protected void onStart() {
super.onStart();
Log.d("tag", "main onstart");
updateMain();
}
protected void updateMain() {
DBAdapter dba = new DBAdapter(this);
dba.open();
....
double cost = dba.getCost();
String costString = String.valueOf(cost);
textView.setText(costString);
dba.close();
}
}
的AddActivity延伸MainActivity,所以当你在AddActivity调用updateMain(),它会调用AddActivity的updateMain但不MainActivity的,所以它不会生效。
public class AddActivity extends MainActivity {
....
@Override
public void onBackPressed() {
super.onBackPressed();
updateMain();// it is this.updateMain, while 'this' here means a AddActivity instance.
}
}
我认为AddActivity扩展MainActivity不是必须的(也许...)。您可以将数据写入SharePreference,然后从您的MainActivty中读取它。
随着有点顿悟感谢改为@ EricHua23,我并不需要延长MainActivity
和updateMain()
在呼唤AddActivity
的updateMain()
。所以我做了一个自定义的Activity
RootActivity
类,它通过覆盖onCreate()
将MainActivity
实例存储到一个变量中,我简单地将所有类扩展为RootActivity
。这样,我可以通过这个变量访问MainActivity
。
您可以通过使用处理器中AddActivity和主要活动更新来自附加活动主要活动onBackpressed利用处理器和AddActivity处理程序更新变量内您要发送空消息, 在应用类中定义的处理程序,并制定者和getter方法并在mainActivity和AddActivity中使用它。
是否有任何错误在你logcat或什么问题 – 2014-09-23 02:52:01
我会再次模拟它并观察LogCat。 – Hayden 2014-09-23 02:53:20
LogCat没有显示任何异常情况。 – Hayden 2014-09-23 03:06:28