添加后退按钮并覆盖onBackPressed

时间:2016-04-27 08:20:53

标签: android android-activity

我想在我的活动中添加后退箭头,并覆盖后退按下以执行"返回"函数,我的设备上的行按钮。我可以这样做而不实现父活动A到我的活动B.Tried使用

getActionBar().setDisplayHomeAsUpEnabled(true);

但是android告诉我这个代码可能会产生NPE,而当我尝试设置主题Theme.AppCompat时,android studio会给我错误,没有解析符号。 我的活动代码:

public class Activity_videoplayer extends ActionBarActivity {
    MyVideoView myVideoView;
    VideoView videoView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ctivity_videoplayer);
        Intent intent = getIntent();
        String video_url = intent.getExtras().getString("video_url");
       videoView = (VideoView) findViewById(R.id.video_view);
        MediaController mediaController = new MediaController(this);
        mediaController.setAnchorView(videoView);
        videoView.setMediaController(mediaController);
        videoView.setVideoURI(Uri.parse(video_url));
        videoView.requestFocus();
        videoView.start();

    }
    public void onBackPressed(){
        super.onBackPressed();

    }
}

3 个答案:

答案 0 :(得分:0)

尝试

        mToolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(mToolbar);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
        getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

可能有帮助......

答案 1 :(得分:0)

确保在清单

中设置您的活动或片段
 assert getSupportActionBar() != null;
 getSupportActionBar().setDisplayHomeAsUpEnabled(true);

并在您的片段或活动的清单文件中设置此代码

<activity android:name=".yourCurrentFragmentOrActivity">
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value=".whichActivityYouWantToGoBack" />
</activity>

您的后退箭头仅在您为其设置父活动时才有效。 并且不需要onBackPressed事件

和你的第二个答案: -

你扩展actionBarActivity意味着你的目标sdk版本是21,如果你想使用appCompat主题,那么你必须扩展AppCompatActivity, 为此你的目标sdk版本应该是22或23.如果你的平台插件和sdktool完全升级,那么你不必自己设置任何东西,它会自动设置一切。所以只需升级你的sdk和平台插件。 你可以查看我的

updated plugin and sdk version

及其最新版本

答案 2 :(得分:0)

在xml中使用app widget工具栏并将以下代码复制到java文件中。

    Toolbar toolbar=(Toolbar)findviewbyId(R.id.toolbar);

if(toolbar!=null) {

setSupportActionBar(toolbar);

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

}

//并调用方法:

@Override

public boolean onOptionsItemSelected(MenuItem item)
{
onBackPressed();
return true;
}