如何或在哪里处理 Android 操作栏生成的点击事件

发布于 2024-10-19 17:40:19 字数 1436 浏览 10 评论 0原文

我有一个操作栏,我通过以下方式将其插入到我的很少的布局屏幕中...

<include android:id="@+id/main_actionbar" layout="@layout/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>

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

I have an actionbar which I have inserted into my very few layout screens via...

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

The actionbar itself is pretty simple and maybe even very bad but 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>

Trying to implement the functionality behind the actionbar I am not sure of how or where to handle clicks that may happen on different screens of the application.

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

Putting the same clickhandler into every activity would work but would also really stink.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冷夜 2024-10-26 17:40:19

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

public abstract class BaseActionBarActivity extends Activity {

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

}

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

public class MyActivity extends BaseActionBarActivity {

Just create a base class extending Activity and include in it all your global action bar click handlers. Example:

public abstract class BaseActionBarActivity extends Activity {

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

}

Then rather than extending Activity in your own app activities, extend from your base class:

public class MyActivity extends BaseActionBarActivity {
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文