Android 如何从主活动调用活动中的函数
公共类活动1扩展活动{Android 如何从主活动调用活动中的函数,android,Android,公共类活动1扩展活动{ billreminder br;//billreminder is a function in activity2 public void onCreate(Bundle savedInstanceState); setContentView(R.layout.main); br.read(c);//c is a string } 如何调用read函数。创建一个类并扩展应用程序,将read方法移动到应用程序类 形成活动调用getApplicationCont
billreminder br;//billreminder is a function in activity2
public void onCreate(Bundle savedInstanceState);
setContentView(R.layout.main);
br.read(c);//c is a string
}
如何调用read函数。创建一个类并扩展
应用程序
,将read方法移动到应用程序类
形成活动调用getApplicationContext()
以获取要调用read方法的应用程序对象
例如:
ApplicationCalssName bmodel = (ApplicationCalssName) getApplicationContext();
bmodel.read(c);
创建一个函数
静态
,以便您可以在任何活动中使用它
如果方法使用上下文,则将上下文作为参数传递
但是,如果您想使用第二个activity的元素,您已经在其中编写了一个方法,那么您应该创建一个应用程序类,并且您必须将此方法移动到应用程序类。有几种方法可以做到这一点。您可以将activity2中的函数设置为静态函数。然后可以这样调用它:
activity2.read(c)
另一种方法是将意图从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
在activity2的onCreate方法中:
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 again1中:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//detect resultCode or requestCode, and do whatever you want
....
}
避免将应用程序类子类化
通常不需要对应用程序进行子类化。在大多数情况下,
静态单例可以以更模块化的方式提供相同的功能
如果你的单身汉需要一个全局上下文(例如注册)
广播接收器),检索它的函数可以给定
上下文,当
首先构造单例
另外,我认为你很困惑,你需要对一个对象调用一个方法
BillRequirement br;//BillRequirement是activity2中的一个函数
是错误的。我想你的意思是br是一个对象。我得到一个错误作为“对于类型ApplicationClassName,读取的方法未定义。请给出扩展应用程序类而不是ApplicationCalssName的类名。ApplicationCalssName是我在上述代码中使用的一个伪名称。是的,我是这样给出的。现在它得到了解决。我在主活动中声明了该函数