我的onBackPressed()实现错了吗?

时间:2013-12-18 10:28:44

标签: android onclicklistener back

我想按下后退按钮programmaticaly,当我按下后退按钮时:

onback.setOnClickListener(new View.OnClickListener() {

        @Override   
        public void onClick(View v) {
            // TODO Auto-generated method stub

        }
    });

我希望通过单击“返回设备”显示与我相同的上一页。然后我做:

onback.setOnClickListener(new View.OnClickListener() {

        @Override   
        public void onClick(View v) {
            // TODO Auto-generated method stub
            super.onBackPressed();

        }
    });

给出'未定义的Object类型'错误。然后我试了一下:

onback.setOnClickListener(new View.OnClickListener() {

        public void onBackPressed(View v) {
            // Do something
            super.onBackPressed();
        }
    });

没有运作。我检查了几个问题和答案,没有onClick的答案,没有'finish()'活动。谢谢你的建议。

4 个答案:

答案 0 :(得分:5)

请勿致电super。只是做:

    onback.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            // Do something
            onBackPressed();
        }
    });

答案 1 :(得分:2)

覆盖超类并调用方法

    onback.setOnClickListener(new View.OnClickListener() {

    @Override   
    public void onClick(View v) {
        // TODO Auto-generated method stub
                onBackPressed();

      }
    });


    @Override    
    public void onBackPressed()
        { 
        //custom backpressed code
        }

答案 2 :(得分:0)

试试这样..

@Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
        super.onBackPressed();
        finish();
    }

如果您需要在按下UI上的按钮时返回功能,请尝试这样..

back.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                finish();
            }
        });

Button back = (Button) findViewById(R.id.back);

这里调用finish();本身就会杀死当前的活动并启动以前的活动......不需要过头。

答案 3 :(得分:0)

我认为你可以通过这样做来实现这一点

onback.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v)
            {
                 finish();

            } 


        });