是否有可能抽象掉XML代码的重复部分?

时间:2018-07-26 05:40:58

标签: java android xml android-layout

我正在开发一个android应用,并且我试图在该应用中的几乎所有活动上实现HorizontalScrollView。 (将近50个以上)。

我希望在java文件中定义一个类/变量/函数,然后在XML文件中调用它,这样我不必重新键入/复制和粘贴代码超过50次。

如果我在MainActivity中定义一个函数,是否可以在其他java / XML文件中使用它?

2 个答案:

答案 0 :(得分:3)

在xml文件中,您可以包括其他xml布局。我认为您可以使用它。

答案 1 :(得分:1)

首先,您的应用程序中应仅包含一个Activity作为入口点,并在不同的窗口中使用Fragments,这是Google目前正在推动的一个想法。


其次,是的,您可以在其他Java文件中重用MainActivity 功能,但不能在XML文件中重用。示例:

定义接口:

public interface MyInterface {
    void triggerMainActivityFunction();
}

然后在您的MainActivity中实现此接口:

public class MainActivity extends Activity implements MyInterface {
    ...
    @Override
    public void triggerMainActivityFunction() {
        // Do something
    }
    ...
}

在要触发此功能的所有Java类中定义侦听器:

public class SomeClass extends Fragment {
    ...
    private MyInterface listener;

    @Override
    void onCreate(...) {
        listener = (MyInterface) getActivity();
    }

    // your function to trigger a reusable 
    // function from Activity when user clicks on something
    public void onClick() {
        listener.triggerMainActivityFunction();
    }
    ...
}


第三,是的,您可以使用include标签来重用XML布局。


希望这可以帮助。祝你好运:)