[英]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.