[英]Calling the same method from different activities
我已经搜索了这个问题的答案,虽然有很多类似的主题,但没有一个解决方案适合我的需求。 我在 MainActivity 中有这段代码,它在那里工作,但我需要在另一个活动中调用相同的“addPlayer”方法。
我还尝试创建一个名为“AddPlayer.java”的新 java class 以通过每个活动中的按钮调用这两个活动,但我找不到调用它的方法。 也许它以我定义的方式.java class?
public class AddPlayer extends AppCompatActivity {
public void addPlayer (View view) {
// followed by same content as method in MainActivity - edited to correct contexts
MainActivity 代码
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 class 所需的语法 - 它具有正确的 ZEFE90A8E604A7C840E88D03A6 分配。
我期待能够使用
AddPlayer.addPlayer(); // or something similar
也许最好的方法就是在两个位置都有这个代码? 虽然看起来效率低下...
创建 class 完成任务并调用它
class AddPlayer{
public void player(Context ctx,View view){
//do your work here
}
}
然后像这样调用该方法
AddPlayer addp = new AddPlayer ();
addp.player(context,view);
我认为概念是这样的,如果您不想创建一个新实例来调用该方法,您可以将该方法声明为 static
也许最好的方法就是在两个位置都有这个代码?
是的。 这是您当前的解决方案,因为您仍在尝试了解 Java 中的method
和method
调用如何工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.