我在我的应用程序中的几个地方使用了 onBackPressed() 方法。 在每个地方我都希望这个方法可以做其他事情。 当用户处于 X 布局时,我希望“后退”按钮执行与 Y 布局不同的操作,因此我认为最好的解决方案是在 onBackPressed 方法中使用参数。 例如在 X onBackPressed(0); 中并在 Y onBackPressed(1) 中;等等
@Override
public void onBackPressed(int c){
if(c==0)Toast.makeText(getApplicationContext(), "This is X", Toast.LENGTH_SHORT).show();
if (c==1)Toast.makeText(getApplicationContext(), "This is Y", Toast.LENGTH_SHORT).show();
}
但是它不起作用。 您有什么想法我可以做些什么才能使它发挥作用吗?或者对于这个问题有什么更好的解决方案吗?
最佳答案
您正在重写框架方法,并且无法向其传递除 API 定义的参数之外的任何其他参数。但是,您可以创建自己的方法来检查您需要的内容,例如:
@Override
public void onBackPressed(){
switch(checkLayout()){
case 1: //do stuff
break;
case 2: .....
}
}
稍微扩展一下 CommonsWare 的评论:是的,用户并不“处于某种布局中”。用户正在与托管特定布局的特定Activity
进行交互。如果您不太明白这意味着什么,您可能应该查阅此文档:http://developer.android.com/reference/android/app/Activity.html
关于android - 带参数的 onBackPressed(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19799071/