【问题标题】:Adding back button and override onBackPressed添加后退按钮并覆盖 onBackPressed
【发布时间】:2016-04-27 17:24:06
【问题描述】:

我想在我的活动中添加后退箭头,并覆盖后退以仅执行“返回”功能,我的设备上的行按钮。我可以在不将父活动 A 实现到我的活动 B 的情况下执行此操作吗?尝试使用

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();

    }
}

【问题讨论】:

  • 你能发布你的活动代码吗?
  • 添加了我的活动代码:)
  • 如果这是您的新应用程序并且如果它刚刚启动,请将 ActionBarActivity 更改为 AppcompatActivity(您需要在 gradle 中添加依赖项)。否则继续你所拥有的并尝试@saurabh gupta 答案。

标签: android android-activity


【解决方案1】:

确保在清单中设置您的活动或片段

 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 和平台插件。 你可以检查我的

:

到目前为止最新的

【讨论】:

【解决方案2】:

试试

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

希望对你有帮助...

【讨论】:

    【解决方案3】:

    在 xml 中使用应用小部件工具栏并将以下代码复制到您的 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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多