我正在使用一个名为
Proteus的安卓库,它在运行时使用我们服务器上的JSON文件来扩展布局.这个库允许数据绑定,但我的问题是如何在使用我的应用程序时从这些字段中获取数据?我无法引用布局的任何标识符,因为它们在编译期间不存在.有没有办法忽略语句中的错误(R.id.input)直到运行时才真正存在?:
View view = inflater.infalte(R.layout.fragment_form, container, false);
TextView textView = (TextView)view.findViewById(R.id.input);
或者可能以编程方式获取运行时期间所有可用唯一标识符的列表?任何信息都会有帮助.谢谢.
最佳答案
proteus在运行时生成视图ID,与在Android XML布局的编译时生成的int ID不同.与Android不同,proteus创建的Views的ID基于String,而R.id.< something>不管用.
Proteus提供了实用程序方法,通过它的String id来查找视图.
布局:
{
"type": "TextView",
"id": "myId"
}
Java的:
View view = proteusView.getViewManager().findViewById("myId"); // can be null
返回的视图也可以是ProteusView
有关更多信息,请参阅the wiki.
The wiki is slightly outdated, the answer above is for
5.0.0-rc11
release and above. The wiki should be updated soon.