单击 ActionBar 中的图标无任何操作
No action on clicking icon in ActionBar
我正在使用来自 Android 开发人员的代码来显示 ActionBar,但我无法让它工作。如果我点击
在 ActionBar 的 icon 上没有响应,但单击文本 BACK(在本例中)有效;然而在
从 xml 文件(下方)中删除图标行,一切正常!
那么我该如何纠正呢?这是 res/menu/main_activity_actions.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- Search, should appear as action button -->
<item android:id="@+id/action_help"
android:icon="@drawable/ic_action_help"
android:title="@string/action_help"
android:showAsAction="ifRoom" />
<item android:id="@+id/action_back"
android:title="@string/action_back"
android:showAsAction="ifRoom" />
</menu>
删除 "icon=" 行可以解决问题,但我希望显示图标。 MainActivity(仅响应
action_back 单击)和 strings.xml 个文件如下所示:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch(id){
case R.id.action_help :
Toast.makeText(this, "Help clicked", Toast.LENGTH_SHORT).show();
return true;
case R.id.action_back :
Toast.makeText(this, "Back clicked", Toast.LENGTH_SHORT).show();
return true;
default :
return super.onOptionsItemSelected(item);
}
}
<resources>
<string name="action_help">Help</string>
<string name="action_back">Back</string>
</resources>
You have to include both this in your menu.xml file
appcompat v7
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
appcompat v7+
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res-auto"
Use this code instead of yours and check whether its working or not.
Hope it works.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch(id){
case R.id.action_help :
Toast.makeText(this, "Help clicked", Toast.LENGTH_SHORT).show();
break;
case R.id.action_back :
Toast.makeText(this, "Back clicked", Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}
我正在使用来自 Android 开发人员的代码来显示 ActionBar,但我无法让它工作。如果我点击 在 ActionBar 的 icon 上没有响应,但单击文本 BACK(在本例中)有效;然而在 从 xml 文件(下方)中删除图标行,一切正常! 那么我该如何纠正呢?这是 res/menu/main_activity_actions.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- Search, should appear as action button -->
<item android:id="@+id/action_help"
android:icon="@drawable/ic_action_help"
android:title="@string/action_help"
android:showAsAction="ifRoom" />
<item android:id="@+id/action_back"
android:title="@string/action_back"
android:showAsAction="ifRoom" />
</menu>
删除 "icon=" 行可以解决问题,但我希望显示图标。 MainActivity(仅响应 action_back 单击)和 strings.xml 个文件如下所示:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch(id){
case R.id.action_help :
Toast.makeText(this, "Help clicked", Toast.LENGTH_SHORT).show();
return true;
case R.id.action_back :
Toast.makeText(this, "Back clicked", Toast.LENGTH_SHORT).show();
return true;
default :
return super.onOptionsItemSelected(item);
}
}
<resources>
<string name="action_help">Help</string>
<string name="action_back">Back</string>
</resources>
You have to include both this in your menu.xml file
appcompat v7
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
appcompat v7+
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res-auto"
Use this code instead of yours and check whether its working or not.
Hope it works.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch(id){
case R.id.action_help :
Toast.makeText(this, "Help clicked", Toast.LENGTH_SHORT).show();
break;
case R.id.action_back :
Toast.makeText(this, "Back clicked", Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}