在Android中,要在一个Activity中调用另一个Activity中的方法,可以使用Intent对象和startActivityForResult()方法。
1.在要调用方法的Activity中定义一个接口,在接口中定义要调用的方法。例如,我们在MainActivity中定义了一个名为MyInterface的接口,并在其中定义了一个名为doSomething()的方法。
public interface MyInterface { void doSomething(); }
2.在要被调用方法的Activity中实现接口,并重写接口中的方法。例如,我们在SecondActivity中实现了MyInterface接口,并重写了doSomething()方法。
public class SecondActivity extends AppCompatActivity implements MyInterface { // ... @Override public void doSomething() { // 这里是要执行的代码 } }
3.在当前Activity中创建一个Intent对象,并将要调用的Activity类作为参数传入。例如,在MainActivity中创建一个Intent对象,并将SecondActivity类作为参数传入。
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
4.将接口实现类对象作为Extra数据对象传递给Intent。例如,在MainActivity中,将当前Activity实现MyInterface的对象传递给Intent。
intent.putExtra("interfaceObj", MainActivity.this);
5.启动要调用方法的Activity,可以使用startActivityForResult()方法。例如,在MainActivity中执行startActivityForResult(intent, REQUEST_CODE)方法。
startActivityForResult(intent, REQUEST_CODE);
6.在被调用的Activity中执行doSomething()方法。例如,在SecondActivity中,获取接口实现类对象并调用doSomething()方法。
MyInterface interfaceObj = (MyInterface) getIntent().getSerializableExtra("interfaceObj"); interfaceObj.doSomething();
通过以上步骤,我们就可以在一个Activity中调用另一个Activity中的方法了。
上一篇:Androidjava.lang.AssertionError:Verificationfailed:call1of1:methodwasnotcalled
下一篇:Androidjava:ErroronSQLiteDatabasedb=this.getWritableDatabase();