如何通过传递数据从另一个活动中调用方法?

时间:2013-02-02 19:39:19

标签: java android function methods

我有2项活动。 我开始一个,然后我开始另一个:

 Intent enabler = new Intent(this, cprompt.class);
        startActivity(enabler);

我想从旧方法中调用一个方法,但我也希望传递一些数据。

这是我尝试的方式:

Activity1.sendcommand(DATA);

我得到了这个:

Cannot make a static reference to the non-static method sendcommand(String) from the type Activity1

我不希望将方法更改为静态。 如果我做一个监听器的唯一方法?如果必须,你可以向我描述一下吗?

java对我来说是新的...:/但如果这个问题解决了,我想我已经完成了我的程序:)

3 个答案:

答案 0 :(得分:1)

一次只有一个活动处于活动状态。您是否因为想要传递一些数据而尝试触发该方法?。您可以通过Intent

来实现
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("YOUR_DATA_KEY", "Data Value");
startActivity(intent); 

并在SecondActivity中,您可以检索数据并对其进行处理

String data = getIntent().getStringExtra("YOUR_DATA_KEY");

您可以通过这种方式发送字符串。您甚至可以传送SerializableParcelable个附加内容。有关更多信息,请参阅 - Intents on Android Developer Website

答案 1 :(得分:0)

您可以声明interface并使Activity1 实施该界面..
然后当你需要调用Activity1的方法时,调用inetrface的方法......

您的界面:

public interface OnSendCommand{
    public void onSendCommand(values);
}

活性1:

public Activity1 implements OnSendCommand {
    public void onSendCommand(values){}
}

答案 2 :(得分:0)

执行此方法时,是否从第二个活动返回到第一个活动?如果是这样,您可以在this教程之后使用startActivityForResult()。如果没有,那么如果此方法不能是静态的,那么应用程序的结构就会出现问题,并且此方法应该位于不从Activity继承的单独的类中。