ActionBar
中的Home Up按钮出现问题。我在PreferenceActivity
并在onCreate
我输入了以下代码:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
getActionBar().setDisplayHomeAsUpEnabled(true);
}
当我运行我的应用程序时,它会显示向上按钮但是当我点击它时没有任何反应。所以我将此代码放在AndroidManifest
:
<activity android:name="com.example.mypackage.SystemInfo">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.simonedev.androtools.MainActivity" />
</activity>
但我仍有同样的问题。我该如何解决? 问题在哪里?
答案 0 :(得分:5)
你不应该使用
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
switch(item.getItemId()) {
case android.R.id.home:
//Do not use the following
//PreferenceActivity.this.onBackPressed();
//or
//finish();
break;
}
return true;
}
但请关注this presentation和google guidelines
Manifest应该再添加1个属性
<activity android:name="com.example.mypackage.SystemInfo"
android:parentActivityName="com.simonedev.androtools.MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.simonedev.androtools.MainActivity" />
</activity>
来自the presentation的复制代码:这将是一个简单的案例
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
switch(item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
break;
}
return true;
}
我邀请您阅读整个presentation了解其他更复杂的案例
答案 1 :(得分:-2)
在您的课程中添加此方法,但在onCreate()
方法
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.action_bar, menu);
setTitle("");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
switch(item.getItemId())
{
case android.R.id.home:
PreferenceActivity.this.onBackPressed();
break;
}
return true;
}
现在,在您的评论之后。您可能必须在res / menu文件夹中创建一个名为action_bar.xml
的文件,并将以下内容添加到其中
<menu xmlns:android="http://schemas.android.com/apk/res/android">
</menu>