公共类Activity1扩展了Activity {
billreminder br;//billreminder is a function in activity2
public void onCreate(Bundle savedInstanceState);
setContentView(R.layout.main);
br.read(c);//c is a string
}
我们如何调用读取功能。
答案 0 :(得分:1)
创建一个类并扩展Application
,将您的read方法移动到Application类。
形成您的活动调用getApplicationContext()
以使Application对象调用read方法。
示例:
ApplicationCalssName bmodel = (ApplicationCalssName) getApplicationContext();
bmodel.read(c);
答案 1 :(得分:0)
创建一个函数static
,以便您可以在任何活动中使用它。
如果您的方法使用上下文,则将上下文作为参数传递。
但是如果你想使用你编写方法的第二个活动的元素,那么你应该创建一个Application类,你必须将这个方法移动到应用程序类。
答案 2 :(得分:0)
有几种方法可以做到这一点。您可以使activity2中的函数成为静态函数。然后,您可以这样调用它:Activity2.read(c)
另一种方法是将一个intent从Activity1传递给Activity2,如下所示:
活动1中的:
Intent intent = new Intent(Activity1.this, Activity2.class);
intent.putExtra("c", c);
//this will put a callback in the onActivityResult method for the Activity1 class
startActivityForResult(intent, requestCode);//requestCode is an int
在onCreate方法中的activity2中:
Bundle extras = getIntent().getExtras();
if(extras != null) {
c = extras.getString("c");
if(c != null && !"".equals(c)) {
read(c);
}
setResult(resultCode);//resultCode is an int
}
在activity1中再次1:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//detect resultCode or requestCode, and do whatever you want
....
}
避免继承Application类。来自android docs:
通常不需要子类Application。在大多数情况下, 静态单例可以在更模块化的情况下提供相同的功能 办法。如果您的单身人士需要全局上下文(例如注册 广播接收器),可以给出一个检索它的功能 内部使用Context.getApplicationContext()的Context 首先构建单身人士。
另外,我觉得你很困惑。您需要在对象上调用方法。
billreminder br; // billreminder是activity2中的一个函数
错了。我认为你的意思是br是一个对象。