如何为Android应用中的每个活动构建操作栏?

时间:2013-06-27 23:58:21

标签: android android-activity android-actionbar

我有一个Android应用程序,在每个活动中我都有相同的自定义ActionBar(只是一个RelativeLayout),它包含徽标和一些按钮。

问题在于,对于每个活动,按钮都是不同的,并与当前活动中的视图进行交互。

我首先创建了一个自定义视图,我可以将其添加到每个活动布局中,但似乎这不是最好的解决方案 - 因为自定义ActionBar必须保存与所有视图的所有交互,并且访问布局本身。

什么是正确的方法?创建自定义Actionbar,其中包含所有活动的一些通用设计以及每个活动的一些不同功能。

由于

1 个答案:

答案 0 :(得分:0)

按照以下DRY指南,我建议为操作栏创建自定义视图。 还可以对其进行配置,以便您可以指定在哪个活动中需要多少个按钮。

您可以通过passing custom attributes动态设置按钮或在xml文件中设置按钮。

为了让按钮与布局上的其余部分进行交互,您应该在活动中点击监听器进行设置:

public class MyActivity extends Activity {

    MyActionBar actionBar;

    public void onCreate(Bundle bundle) {
        actionBar = (MyActionBar) findViewById(R.id.action_bar);
        Button firstButton = actionBar.getButton(1);

        firstButton.setOnClickListener(new OnClickListener(){
            public void onCLick() {
                // interact with main activity
            }
        }
    }
}

如果您是真正的xml粉丝,您可以执行类似于Android使用onClick属性所做的操作。它使用反射来调用提供的父方法。Info about thatsource code。也许你可以重用已经实现的东西,或者从Android复制和改编。

如果你需要任何帮助,请给我一个大喊。