繁体   English   中英

调用操作栏会导致错误

[英]Calling Action Bar causes an error

我有2个活动,其中1个主要活动是空白活动,第二个活动是Map活动。 我正在尝试在顶部导航栏上为第二个活动(地图活动)设置后退按钮,以便能够转到主要活动。

运行以下代码时出现异常。 看到了类似的问题,但它们是空白活动,而不是地图活动。 此外,建议是改变我正在扩展的班级。 考虑到搞砸了地图活动的默认代码实现,我不知道如何工作。 请指教。

错误消息和我的代码如下。 我正在使用Holo Light作为主题。

例外:

尝试在空对象引用上调用虚拟方法'void android.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)'

地图活动代码

import android.app.ActionBar;
import android.content.Intent;
import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.MenuItem;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {

    private GoogleMap mMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);
        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);

        //ERROR message occurring on these line
        ActionBar actionBar = getActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);
    }
}

清单-为MapActivity应用了父名称

<activity
    android:name=".MapsActivity"
    android:parentActivityName=".MainActivity"
    android:label="@string/title_activity_maps"></activity>

从FragmentActivity文档中

http://developer.android.com/reference/android/support/v4/app/FragmentActivity.html

注意:如果要实现包含动作栏的活动,则应改用ActionBarActivity类,该类是该类的子类,因此允许您在API级别7和更高级别使用Fragment API。

另外,由于您正在使用支持库,因此应该

ActionBar actionBar = getSupportActionBar();

因此,Actionbar是一种旧方法。 您可以在活动中设置易于使用和自定义的工具栏。

工具栏_xml.xml

<android.support.v7.widget.toolbar
       android: layout_width="match_parent"
       android: layout_height="78dp" 
       android: id="@+I'd/mtoolbar />

并在地图活动中声明

Toolbar mtoolbar =       (Toolbar)findviewbyid(R.id.mtoolbar);
setsupportactionbar(mtoolbar);
getSupportActionBar().setHomeAsUpEnabled(true);

<include layout="@layout/toolbar_xml.xml /> in your main layout.

对不起,如果我在移动设备上写了任何错误,请发表评论。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM