【问题标题】:Back Button to go another Activity not parent Activity in Android后退按钮转到另一个 Activity 不是 Android 中的父 Activity
【发布时间】:2016-07-14 10:09:32
【问题描述】:

我用这段代码创建了一个后退按钮

    getActionBar().setHomeButtonEnabled(true);
    getActionBar().setDisplayHomeAsUpEnabled(true);

让用户回到父Activity。 但现在我希望用户回到另一个活动(而不是父活动)。我该怎么做?

【问题讨论】:

  • 你查看答案了吗..
  • 但是当用户点击后退按钮时将用户重定向到另一个页面并不是一个好的设计。后退按钮应该将用户重定向到上一页。

标签: android android-layout button back onbackpressed


【解决方案1】:

您必须从您的活动中覆盖 onBackPressed()

@Override
public void onBackPressed()
{
    super.onBackPressed(); 
    startActivity(new Intent(ThisActivity.this, NextActivity.class));
    finish();

}

注意:在此代码中,ThisActivity 是您当前的 Activity,NextActivity 是您在单击后退按钮时打开的 Activity。

【讨论】:

    【解决方案2】:

    处理操作栏主页按钮按下事件并执行您的逻辑

            @Override
            public boolean onOptionsItemSelected(MenuItem item) {
                    switch (item.getItemId()) {
                    case android.R.id.home:
                          // Your desired class
                           startActivity(new Intent(ThisActivity.this, NextActivity.class)); 
                        break;
                    }
                    return true;
            }
    

    【讨论】:

      【解决方案3】:

      试试这个方法,

      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
          MenuInflater inflater = getMenuInflater();
          inflater.inflate(R.menu.menu_file, menu);
          return true;
      }
      
      
      @Override
      public boolean onOptionsItemSelected(MenuItem item) {
          switch (item.getItemId()) {
      
              case android.R.id.home:
      
                      Intent about = new Intent(MainActivity.this,Target.class);;
                      startActivity(about);
                      finish();
      
                  return true;
      
              default:
                  return super.onOptionsItemSelected(item);
          }
      
      }
      

      这里android.R.id.home指的是ActionBar中的后退图标

      【讨论】:

        【解决方案4】:

        将此添加到清单中,为您的活动名称修改它

                <activity
                    android:name="SecondActivity"
                    android:parentActivityName="ParentActivity" >
                    <!-- Parent activity meta-data to support 4.0 and lower -->
                    <meta-data
                        android:name="android.support.PARENT_ACTIVITY"
                        android:value="com.example.app_name.A" />
                </activity>
        

        然后您应该在您的子活动或第二个活动中添加如下代码,而无需传递意图,只需 finish() 当前活动,如下所示

        @Override
            public boolean onOptionsItemSelected(MenuItem item) {
                switch (item.getItemId()) {
        
                    case android.R.id.home:
        
                            Intent intent = new     Intent(SecondActivity.this,ParentActivity.class);
                            startActivity(about);
                            finish();
                        return true;
        
                    default:
                        return super.onOptionsItemSelected(item);
                }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-01-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多