调用操作栏会导致错误

时间:2015-12-04 21:10:22

标签: java android

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

运行以下代码时出现异常。看到类似的问题,但它们是空白的活动,而不是地图活动。此外,建议是改变我延伸的课程。考虑到混淆地图活动的默认代码实现,我不知道如何工作。请指教。

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

  

例外:

     

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

地图活动代码

do{
    var int=0;
    $.ajax({...},
        success:function(response){ int++; },
    });
    alert(int);
}while(int<10);

Manifest - 为MapActivity应用父名称

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

2 个答案:

答案 0 :(得分:2)

来自FragmentActivity文档

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

  

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

此外,由于您使用的是支持库,因此它应该是

ActionBar actionBar = getSupportActionBar();

答案 1 :(得分:2)

所以,Actionbar是一种古老的方式。您可以在活动中设置易于使用和自定义的工具栏。

toolbar_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.

很抱歉,如果我从手机上写错了,请发表评论。