Java 从不同的活动调用相同的方法

Java 从不同的活动调用相同的方法,java,android,Java,Android,我一直在寻找这个问题的答案,虽然有许多类似的主题,但没有一个解决方案适合我的需要。我在MainActivity中有这段代码,它在那里工作,但我需要在另一个activity中调用相同的“addPlayer”方法 我还尝试创建一个名为“AddPlayer.java”的新java类,通过每个活动中的按钮来调用这两个活动,但我找不到调用它的方法。也许这就是我定义.java类的方式 public class AddPlayer extends AppCompatActivity { pu

我一直在寻找这个问题的答案,虽然有许多类似的主题,但没有一个解决方案适合我的需要。我在MainActivity中有这段代码,它在那里工作,但我需要在另一个activity中调用相同的“addPlayer”方法

我还尝试创建一个名为“AddPlayer.java”的新java类,通过每个活动中的按钮来调用这两个活动,但我找不到调用它的方法。也许这就是我定义.java类的方式

    public class AddPlayer extends AppCompatActivity {

    public void addPlayer (View view) {
       // followed by same content as method in MainActivity - edited to correct contexts
主活动代码

public class MainActivity extends AppCompatActivity {

public void addPlayer (View view) {

    final ParseObject players = new ParseObject("Players");

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    final AlertDialog.Builder builderInBuilder = new AlertDialog.Builder(this);

    final EditText nameInput = new EditText(this);
    nameInput.setInputType(InputType.TYPE_CLASS_TEXT);
    final EditText nickInput = new EditText(this);
    nickInput.setInputType(InputType.TYPE_CLASS_TEXT);

    builder.setTitle("New Player Details")
            .setMessage("Enter new player name...")
            .setIcon(android.R.drawable.gallery_thumb)
            .setView(nameInput)
            .setPositiveButton("Add Player", new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {

                    builderInBuilder.setTitle("New Player Details")
                            .setMessage("Enter player Nickname...")
                            .setIcon(android.R.drawable.gallery_thumb)
                            .setView(nickInput)
                            .setPositiveButton("Add Nickname", new DialogInterface.OnClickListener() {

                                @Override
                                public void onClick(DialogInterface dialog, int which) {

                                    players.add("nickname", nickInput.getText().toString());
                                    players.add("username", nameInput.getText().toString());
                                    players.saveInBackground(new SaveCallback() {

                                        @Override
                                        public void done(ParseException e) {

                                            if (e != null) {

                                                Toast.makeText(MainActivity.this, "Player could not be added.\n" + e.getMessage(), Toast.LENGTH_SHORT).show();

                                            } else {

                                                Toast.makeText(MainActivity.this, "Player added successfully.", Toast.LENGTH_SHORT).show();

                                            }

                                        }
                                    });

                                }
                            })
                            .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

                                @Override
                                public void onClick(DialogInterface dialog, int which) {

                                    Toast.makeText(MainActivity.this, "Add New Player cancelled.", Toast.LENGTH_SHORT).show();
                                    dialog.cancel();

                                }
                            })
                            .show();

                }
            })
            .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {

                    Toast.makeText(MainActivity.this, "Add New Player cancelled.", Toast.LENGTH_SHORT).show();
                    dialog.cancel();

                }
            })
            .show();

}
我在MainActivity中调用该方法时没有遇到任何错误,我只是不确定如何最好地从2个活动中调用该方法,以及调用单独的java类所需的语法—该类具有正确的包分配

我希望能够使用

AddPlayer.addPlayer(); // or something similar

也许最好的方法就是在两个位置都使用此代码?但是似乎效率很低…

创建类来完成任务并调用它

class AddPlayer{

public void player(Context ctx,View view){
   //do your work here
  }

}
然后像这样调用该方法

AddPlayer addp = new AddPlayer ();
addp.player(context,view);

我认为这个概念是这样的,如果您不想创建一个新实例来调用该方法,您可以将该方法声明为static

我在MainActivity中调用该方法时没有错误???在MainActivity中调用哪种方法?哪里请告诉我是哪一行代码。对不起,我指的是从MainActivity UI中的按钮在onClick中调用的方法“addPlayer”-单击MainActivity中的按钮,代码运行正常,我需要一种方法从另一个活动中的按钮调用相同的代码。我尝试将AddPlayer.java中的方法声明为静态,但这会使所有上下文都不正常,如果声明为静态并传递上下文,它会像-AddPlayer.AddPlayer(context)?或者它必须声明为新的才能使用吗?它将是这样的
AddPlayer.AddPlayer(context)
,这确实让我想知道。。。如果我在MainActivity中将原来的addPlayer方法声明为static,我是否能够这样调用它-MainActivity.addPlayer(context,view);-显然,如果我在方法声明中添加了一个上下文变量,或者这是一种糟糕的做法?