Android 如何执行必须在xml文件中定义的runnable
我在库中定义了一个菜单结构,它使用preferenceActivity等。 我想要的是在库中定义一个菜单,在最终的应用程序中,我只想创建一个xml文件,说明我有哪些菜单项,以及当有人点击菜单项时要做什么 我知道,我可以定义一个意图,并通过菜单启动它,但这似乎非常庞大,而不是我正在寻找的。我想在最终的应用程序中的某个地方定义一个runnable,并通过xml引用它,库菜单应该能够读取xml并运行runnable 有可能吗 编辑: 以下是我需要的: 有一个菜单,它的所有内容都在库中定义。在实现时,它应该执行在目标应用程序的.xml文件中定义的操作。我可以轻松地设置首选项并激发意图。但是如何以这种方式执行runnable?如果我设置了一个broadcastlistener来监听意图,那么它并不完全是平滑的。 它工作于atm(旧库)的唯一方式是,库中的菜单需要知道可以通过菜单执行的所有代码。这太过分了。我就是这样做的 在我的attrs.xml(在库中)中,我定义了以下属性Android 如何执行必须在xml文件中定义的runnable,android,Android,我在库中定义了一个菜单结构,它使用preferenceActivity等。 我想要的是在库中定义一个菜单,在最终的应用程序中,我只想创建一个xml文件,说明我有哪些菜单项,以及当有人点击菜单项时要做什么 我知道,我可以定义一个意图,并通过菜单启动它,但这似乎非常庞大,而不是我正在寻找的。我想在最终的应用程序中的某个地方定义一个runnable,并通过xml引用它,库菜单应该能够读取xml并运行runnable 有可能吗 编辑: 以下是我需要的: 有一个菜单,它的所有内容都在库中定义。在实现时,它
<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 () //...