我有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对我来说是新的...:/但如果这个问题解决了,我想我已经完成了我的程序:)
答案 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");
您可以通过这种方式发送字符串。您甚至可以传送Serializable
和Parcelable
个附加内容。有关更多信息,请参阅 - 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继承的单独的类中。