应用程序不断崩溃。它表示actionBar.setDisplayHomeAsUpEnabled(true);中存在空指针异常。我检查了我的代码,后面的按钮有一个按钮。它被定义并且它可以追溯到主要的地图活动。在onOptionsItemSelected(MenuItem菜单)中,我已经为我的后退按钮添加了大小写。我不知道为什么它会给我一个错误。
public class AddressList extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_address_list);
// get action bar
ActionBar actionBar = getActionBar();
// Enabling Up / Back navigation
actionBar.setDisplayHomeAsUpEnabled(true);
ListView listview = (ListView) findViewById(R.id.listView);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_address_list, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
switch (item.getItemId()) {
case R.id.button:
Add();
return true;
case R.id.back:
Back();
return true;
}
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
private void Back(){
Button button = (Button) findViewById(R.id.back);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(AddressList.this, MapsActivity.class);
startActivity(intent);
finish();
}
});
}
private void Add() {
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(AddressList.this, SilentGeofence.class);
startActivity(intent);
finish();
}
});
}
}
这是我的menu.xml文件你可以看到我有一个后退按钮。
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.anusha.app.AddressList">
<item android:id="@+id/action_settings" android:title="@string/action_settings"
android:orderInCategory="100" app:showAsAction="never" />
<item android:id="@id/button"
android:title="+"
app:showAsAction="ifRoom">
<item android:id="@+id/back"
android:title="List"
app:showAsAction="ifRoom" />
</item>
</menu>
答案 0 :(得分:1)
更改
ActionBar actionBar = getActionBar();
到
ActionBar actionBar = getSupportActionBar();
执行此更改的原因是:您的活动从ActionBarActivity
延伸,这意味着您正在使用支持库中的ActionBar
,因此您必须使用getSupportActionBar()
。