我有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);
}
}
答案 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.
很抱歉,如果我从手机上写错了,请发表评论。