【问题标题】:android back buttons, only one piece of codeandroid后退按钮,只有一段代码
【发布时间】:2015-09-25 09:15:49
【问题描述】:

我想编写一些代码来执行返回上一个活动的操作。当然,我可以为我拥有的每个后退按钮编写一个代码,但我希望只有一段代码适用于所有后退按钮(然后,例如,将功能分配给“onclick”事件) .我该如何处理?

【问题讨论】:

    标签: java android xml button


    【解决方案1】:

    请使用 onclick 方法,该方法会重定向到上一个活动。

      @Override
        public void onBackPressed() 
        {
            // your code.
        }
    
    
        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event)
    
        {
    
        if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction()==KeyEvent.ACTION_DOWN) 
        {
                // your code
                return true;
            }
    
           return super.onKeyDown(keyCode, event);
        }
    

    【讨论】:

    • @tbz 这就是我的想法,但是如何解决之前的活动(对于每个按钮)?以及把java函数放在哪里?
    • @Helios83 请写上所有按钮的通用功能
    • @ TBZ 我应该把这个函数放在哪个 .java 中?什么是变量 keyCode?​​span>
    • @TBZ 我应该在每个类中添加 onKeyDown 吗?我想如果我只是想回去,我不需要覆盖 onBackPressed() 方法。但是如果我理解正确的话,我需要在每个类中定义它,然后调用超级方法
    【解决方案2】:

    使用继承

    YourActivity.java

    public class YouActivity extends BaseActivity {
        Button back_button;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            back_button = (Button) findViewById(R.id.back_button);
            back_button.setOnClickListener(base_listener);
        }
    }
    

    BaseActivity.java

    public class BaseActivity extends Activity {
    
        View.OnClickListener base_listener = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //you back action here;
            }
        };
    
        @Override
        public void onBackPressed() {
            super.onBackPressed();
        }
    }
    

    【讨论】:

    • 我的背部动作是什么?如何定义它?如果我明白我应该把 onBackPressed() 功能
    • 你想要什么行为?如果您想关闭活动,请使用 finish(); 取决于您的需要
    • 我想调用上一个活动。那么这样的活动有通用名称吗? onBackPressed() 不是我需要的功能吗?
    • 如果您想返回并关闭当前活动,您可以使用finish();,是的,您可以使用onBackPressed();,您可以在活动的任何位置进行操作
    • 但是如果你有一个后退按钮用户界面,你可以通过 base_listener 来使用我的代码
    猜你喜欢
    • 1970-01-01
    • 2011-12-18
    • 2014-02-22
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多