gpt4 book ai didi

java - 从不同的 Activity 调用相同的方法

转载 作者:行者123 更新时间:2023-12-02 09:22:35 28 4
gpt4 key购买 nike

我已经搜索了此问题的答案,虽然有很多类似的主题,但没有一个解决方案适合我的需求。我在 MainActivity 中有这段代码,它在那里工作,但我需要在另一个 Activity 中调用相同的“addPlayer”方法。

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

    public class AddPlayer extends AppCompatActivity {

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

主 Activity 代码

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 个 Activity 中调用此方法以及调用单独的 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);

我觉得这个概念是这样的,如果你不想创建一个新的实例来调用该方法,你可以将该方法声明为静态

关于java - 从不同的 Activity 调用相同的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58580032/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com