android - 带参数的 onBackPressed()

标签 android

我在我的应用程序中的几个地方使用了 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/

相关文章:

android + eclipse + maven + actionbarsherlock

android - Intent 图像捕获数据==null

java - 如何将 Hashmap 存储到 android,以便在使用共享首选项重新启动应用程序时重用它?

java.net.ConnectException : failed to connect to localhost/127. 0.0.1(端口 9090):连接失败:ECONNREFUSED(连接被拒绝)

java - 解析 JSON 数组、DOCTYPE 时出错

android - 如何在 finish() 事件/日历 Activity 上对 Activity 进行动画处理 - Android Java

android - 将 C++ 添加到 Android Studio 2.2

java - 使用 AsyncTask 传递值

java - 更改 AutoCompleteTextView 的值

android - 为什么我在 Android 上使用 Guice 2.0 时会收到 ClassNotFoundException?