在B组中,我有以下方法:
public String sendPlayerDataMethod() {
String testt = "thissss is for testing";
/***
Intent sendPlayerData = new Intent(this, FullPlayerList.class);
sendPlayerData.putExtra(Intent.EXTRA_TEXT, testt);
startActivity(sendPlayerData);
***/
return testt;
}
在A类中,我想简单地调用此方法。我认为ClassB.sendPlayerDataMethod()
可以解决这个问题,但是当我输入它时,IntelliJ似乎无法接受它。
这两个班级都是公开的......
我想调用该方法,然后将返回值赋给ClassA中的var ...
由于
答案 0 :(得分:1)
你的方法实际上是正确的,它没有问题。您仍然获得此行为的最可能原因是因为您引用该方法的方式(来自A类)。有两种方法可以解决这个问题:
第一种方法(以及更快的方法)是让你的sendPlayerDataMethod()
静态,然后在A类中引用它:
ClassB.sendPlayerDataMethod();
另一种选择是使其成为非静态的。在这种情况下,您必须先创建B类对象,然后才能使用该方法。像这样:
ClassB b = new ClassB();
b.sendPlayerDataMethod();
我希望这有帮助..快乐编码!
答案 1 :(得分:1)
听起来您想将信息从一个活动传递到另一个活动。
常见的方法是在A类中创建一个Intent(就像在您的注释代码中一样),并通过从B类中onCreate()
访问savedInstance
方法的信息来接收意图。
不要编写像静态属性和东西这样的肮脏技巧。跟着 Activity Lifecycle
public class ActivityA extends Activity {
...
public void sendPlayerDataMethod() {
String test = "thissss is for testing";
Intent sendPlayerData = new Intent(this, ActivityB.class);
sendPlayerData.putExtra(Intent.EXTRA_TEXT, test);
startActivity(sendPlayerData);
}
...
}
public class ActivityB extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
String test = savedInstanceState.getString(Intent.EXTRA_TEXT);
Log.i("MyApp", test); // log your String in LogCat
}
}
(这个代码就是在没有IDE的情况下开发的,所以不能保证)
答案 2 :(得分:0)
在A班:
非静态方式:
B b = new B();
String data = b.sendPlayerDataMethod();
静态方式:
String data = B.sendPlayerDataMethod();
// Set the sendplayerdatamethod to static
答案 3 :(得分:0)
确保方法是静态的,如下所示:
public static String sendPlayerDataMethod() {
String testt = "thissss is for testing";
/*** Intent sendPlayerData = new Intent(this, FullPlayerList.class);
sendPlayerData.putExtra(Intent.EXTRA_TEXT, testt);
startActivity(sendPlayerData);***/
return testt;
}
然后你可以从 A类中调用它:
classB.sendPlayerDataMethod();