1

我们可以使用<include />将布局包含到另一个布局中。

我使用 .xml 将activity_main.xml包含到activity_second.xml<include />

activity_main.xml有一个<TextView />和一个<Button />。并且在MainActivity.java<Button />中有一个处理程序doThis(View v){..}

如何在SecondActivity.java中重用按钮处理程序

4

3 回答 3

2

您可以为此使用片段

于 2012-08-31T13:25:17.883 回答
2

没有按钮处理程序。它是OnClickListener。并且要重用它,要么将该源复制到第二个活动类,要么创建MyActivity你的类,MainActivity并将SecondAcivity其扩展并将公共代码放在那里。

于 2012-08-31T13:18:51.053 回答
1

我对你的问题做了类似的事情。不要认为它比使用 Fragments 更好,但简而言之。

你有你的 layout_main.xml。您可以像这样将其他 XML (menu.xml) 导入其中:

<include
    android:id="@+id/layoutMenu"
    layout="@layout/menu" />

像这样创建一个 Menu.java 类(我从自己的类中复制了它,所以它不完整,但出于它的想法):

 public class Menu {

ImageView buttonNieuws;

public void set(Activity activity, String currentPage) {

    // Button NIEUWS
    buttonNieuws = (ImageView) activity.findViewById(R.id.button_nieuws);

    if (!currentPage.equals("nieuws")) {

        buttonNieuws.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(view.getContext(),
                        Nieuws.class);
                view.getContext().startActivity(intent);
            }
        });

    } else {

        buttonNieuws.setImageDrawable(activity.getResources().getDrawable(
                R.drawable.button_nieuws_on));
    } ...

然后在您的主活动类中,您可以使用这样的代码将它们链接在一起:

 Menu menu = new Menu();
 menu.set(this, currentPage);

巨大的缺点是无限的活动会堆叠在一起。这是我的临时解决方案,因为我还没有进入 Fragments。

于 2012-08-31T13:51:48.347 回答