android - 如何或在何处处理由 android actionbar 生成的点击事件

标签 android oop menu event-handling menubar

我有一个操作栏,我已通过...将其插入到我为数不多的布局屏幕中

<include android:id="@+id/main_actionbar" layout="@layout/actionbar" />

actionbar 本身非常简单,甚至可能非常糟糕,但是 wtf...

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/actionbar" style="@style/ActionBarWrapper">
    <RelativeLayout style="@style/ActionBarContent"
        android:id="@+id/actionBarContent">
        <TextView android:id="@+id/ab_text" style="@style/ActionBarText" />
        <ImageView android:id="@+id/ab_border_01" style="@style/ActionBarBorder01" />
        <ImageView android:id="@+id/ab_icon_01" style="@style/ActionBarIcon01" />
        <ImageView android:id="@+id/ab_border_02" style="@style/ActionBarBorder02" />
        <ImageView android:id="@+id/ab_icon_02" style="@style/ActionBarIcon02" />
        <ImageView android:id="@+id/ab_border_03" style="@style/ActionBarBorder03" />
        <ImageView android:id="@+id/ab_icon_03" style="@style/ActionBarIcon03" />
    </RelativeLayout>
    <ImageView android:id="@+id/ab_footerline" style="@style/ActionBarFooterLine" />
</LinearLayout>

尝试实现操作栏背后的功能时,我不确定如何或在何处处理应用程序不同屏幕上可能发生的点击。

<item name="android:onClick">ab_click</item>

将相同的点击处理程序放入每个 Activity 中会起作用,但也会很糟糕。

最佳答案

只需创建一个扩展 Activity 的基类,并将所有全局操作栏点击处理程序包含在其中。示例:

public abstract class BaseActionBarActivity extends Activity {

    public void ab_click(View v) {
        // handle your click
    }

}

然后不要在您自己的应用 Activity 中扩展 Activity,而是从您的基类扩展:

public class MyActivity extends BaseActionBarActivity {

关于android - 如何或在何处处理由 android actionbar 生成的点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5144482/

相关文章:

java - 抽屉布局在按下后不关闭(取决于 support-v4 lib)

带有 MVP 的 Android 架构组件

Java,通过arraylist调用对象方法

php - 如何在 PHP 中设计一个对象

javascript - 如何阻止页面重定向到之前访问过的页面?

html - 允许 float 水平菜单随窗口调整大小而无需换行

Android 全屏导航栏透明度渗入导航 View

c++ - 我可以假设兄弟类的静态转换将无法编译吗?

c# - 我可以以编程方式展开 'File' 菜单吗?

android - 使用 VrVideoView 加载 360 度 Youtube 视频