假设我有几个我创造的球员。 并且让我们说,对于他们中的每一个,我想要激活动作的不同集合。
我如何确定哪个玩家已经完成(案例句子的实现本身),以便为每个玩家采取不同的行动?
例如:为了处理单个玩家,我们所要做的就是像这样实现onCompletion()
方法:
public void onCompletion(MediaPlayer mp){
//DO SOMETHING HERE THAT FITS FOR ALL KINDS OF PLAYER'S TYPE OBJECTS
}
如何添加案例句子以扩展它以处理几个不同的玩家对象?
谢谢!
答案 0 :(得分:4)
传递给此方法的MediaPlayer
属性与刚刚完成的MediaPlayer
相同,因此只要您保留指向每个媒体播放器的指针(例如通过全局变量),那么您需要做的就是检查您收到的媒体播放器:
public class MyClass implements OnClompleteListener
{
MediaPlayer player1, player2, player3;
//initialize them
player1.setOnCompleteListener(this);
player2.setOnCompleteListener(this);
player3.setOnCompleteListener(this);
@Override
public void onCompletion(MediaPlayer mp)
{
if (mp == player1)
{
//TODO handle player 1 completion
}
else if (mp == player2)
{
//TODO handle player 2 completion
}
else if (mp == player3)
{
//TODO handle player 3 completion
}
}
}
您也可以在线处理此问题,而无需实施OnCompleteListener
:
player1.setOnCompleteListener(new OnCompleteListener() {
@Override
public void onCompletion(MediaPlayer mp)
{
//mp IS ALWAYS EQUAL TO player1!
}
});
答案 1 :(得分:0)
您可以创建一个扩展MediaPlayer
的类,并为其提供一个类似数字的属性,以跟踪哪个玩家是哪个。然后你会用onCompletion()
方法检查玩家的号码。否则,您可以创建不同的onCompletion侦听器并将它们设置为不同的播放器。