如何为不同的活动堆叠常用方法

时间:2013-01-21 14:27:23

标签: android android-layout android-activity static-methods

http://i45.tinypic.com/1jogvm.jpg

我正在为ActivityButtons使用新活动。所以我喜欢10个不同的活动,所有活动都使用相同的页脚。在页脚中,有按钮和大量点击事件。我只是将Footer按钮的所有监听器事件粘贴到其他一些活动中进行测试。它工作但我需要找到一种方法将它们保持在一起,以便我只需要修改一次。

我尝试将所有常用方法保持在一个单独的实用程序类中,使它们保持静态,但它的用途有限。我遇到了引用和非静态方法的问题。

在我的研究中,我读过有关ViewFlipper的内容。如果我将一个MainActivity用于所有内容并使用ViewFlipper在布局之间切换,那会更好吗?我已经读过这可能会导致一些资源问题,因为唯一的活动会一直处于活动状态。

你对这个问题有什么建议吗?

提前致谢。

2 个答案:

答案 0 :(得分:0)

您可以创建一个ParentActivity,它将处理onClick方法,然后让您的另一个Activities extend ParentActivity执行特定的操作对他们来说。

另一种方法是使用Fragments。创建一个将处理Footer的片段,其他片段将根据预期的工作情况而有所不同。

答案 1 :(得分:0)

有几件事需要考虑。

Fist是脚注在android上有点问题的设计模式。由于屏幕区域正下方有软按钮的设备,用户在瞄准页脚时非常容易意外点击系统按钮,反之亦然。如果你没有使用页脚,我建议你在它和屏幕的下边缘之间留出足够的余量,以帮助缓解这个问题。

您可以使用几个选项来处理布局和单击侦听器。您可以将页脚设置为自己的Fragment并将其添加到需要它的每个活动中。这可以说是更难的方法,但如果你能够应对挑战,它将为Fragments提供良好的学习体验。

另一种选择是让你的所有页脚在他们自己的活动中点击监听器,然后将其扩展到所有其他活动。像这样:

public class FooterActivity extends Activity{
    Button btn1
    //...
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.id.yourLayout);
        btn1 = (Button)findViewById(R.id.btn1);
        btn1.setOnClickListener(yourClickListener);
        //...
    }
}

然后在您的正常活动中,将extends Activity更改为extends FooterActivity