Android 如何执行必须在xml文件中定义的runnable

Android 如何执行必须在xml文件中定义的runnable,android,Android,我在库中定义了一个菜单结构,它使用preferenceActivity等。 我想要的是在库中定义一个菜单,在最终的应用程序中,我只想创建一个xml文件,说明我有哪些菜单项,以及当有人点击菜单项时要做什么 我知道,我可以定义一个意图,并通过菜单启动它,但这似乎非常庞大,而不是我正在寻找的。我想在最终的应用程序中的某个地方定义一个runnable,并通过xml引用它,库菜单应该能够读取xml并运行runnable 有可能吗 编辑: 以下是我需要的: 有一个菜单,它的所有内容都在库中定义。在实现时,它

我在库中定义了一个菜单结构,它使用preferenceActivity等。 我想要的是在库中定义一个菜单,在最终的应用程序中,我只想创建一个xml文件,说明我有哪些菜单项,以及当有人点击菜单项时要做什么

我知道,我可以定义一个意图,并通过菜单启动它,但这似乎非常庞大,而不是我正在寻找的。我想在最终的应用程序中的某个地方定义一个runnable,并通过xml引用它,库菜单应该能够读取xml并运行runnable

有可能吗

编辑: 以下是我需要的: 有一个菜单,它的所有内容都在库中定义。在实现时,它应该执行在目标应用程序的.xml文件中定义的操作。我可以轻松地设置首选项并激发意图。但是如何以这种方式执行runnable?如果我设置了一个broadcastlistener来监听意图,那么它并不完全是平滑的。 它工作于atm(旧库)的唯一方式是,库中的菜单需要知道可以通过菜单执行的所有代码。这太过分了。

我就是这样做的

在我的attrs.xml(在库中)中,我定义了以下属性

<attr name="runnable" format="string" />
现在,我可以在我的最终应用程序中定义实现Runnable的文件/类,并创建将执行这些Runnable的菜单,即使菜单是在库中创建的,并且不知道运行时会有哪些类


所有菜单都是从xml构建的(本例中为需求)

xml中定义的runnable?不,没有这样的选择我读了你的问题很多次,我不明白你想要什么。
<com.company.library.menu.CustomPref
    android:title="@string/mytitle"
    android:icon ="@drawable/icon"
    custom:runnable="com.company.someapp.somefolder.MyRunnable" />
@Override
protected void onClick() {
    try {
        Class<?> clazz = Class.forName(runnable_string_from_xml);

        // check if it's a Runnable

        Object o = clazz.newInstance();

        if(o instanceof Runnable) {
            Runnable r = (Runnable) o;
            myPrefActivity.runOnUiThread(r);
        }
    } catch () //...