Saf*_*ari 4 android android-activity android-actionbar
我试过这段代码来展示我ProfileActivity:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_profile) {
Intent mainIntent = new Intent(Contracts.this, Profile.class);
startActivity(mainIntent);
return true;
}
return super.onOptionsItemSelected(item);
}
Run Code Online (Sandbox Code Playgroud)
当我点击个人资料菜单项目时,我可以看到我,ProfileActivity但我没有任何后退按钮,我ActionBar在之前的活动中返回.
那么,我该如何显示一些后退按钮?我的代码在我的菜单中显示活动是否正确?
在您的个人资料活动中检查是否缺少某些内容:
public class Profile extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// etc...
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.action_profile:
NavUtils.navigateUpFromSameTask(this);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
Run Code Online (Sandbox Code Playgroud)
该函数NavUtils.navigateUpFromSameTask(this)要求您在AndroidManifest.xml文件中定义父活动
<activity android:name="com.example.ServicesViewActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.ParentActivity" />
</activity>
Run Code Online (Sandbox Code Playgroud)
http://developer.android.com/design/patterns/navigation.html#up-vs-back
在放这个的onCreate()方法中Profile.class,
getActionBar().setDisplayHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)
和这个,
@Override
public boolean onOptionsItemSelected(MenuItem menuItem)
{
onBackPressed();
return true;
}
Run Code Online (Sandbox Code Playgroud)