0

我有 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对我来说是新的......:/但是如果这个问题得到解决,我想我的程序已经完成了:)

4

3 回答 3

2

一次只有一个活动处于活动状态。您是否只是因为要传递一些数据而尝试触发该方法?您可以通过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附加内容。有关更多信息,请参阅 - Android 开发者网站上的 Intents

于 2013-02-02T19:49:03.343 回答
0

您可以声明一个interfaceActivity1 实现该接口..
然后当您需要调用Activity1的方法时调用inetrface的方法...

你的界面:

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

活动1:

public Activity1 implements OnSendCommand {
    public void onSendCommand(values){}
}
于 2013-02-02T19:44:04.813 回答
0

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

于 2013-02-03T06:02:31.227 回答