在我的Android应用程序中,我有一个包含
它将包含的项目应从应用程序在启动时查询到服务器的
然后,用户应该能够通过使用应用程序提供的功能向
为了更好地理解我要实现的内容,这个模拟应该解释清楚:
我想知道:
如何在
"错误:"
请注意:
ExpandableListView
的Activity。它将包含的项目应从应用程序在启动时查询到服务器的
XML
文件中提取(假设文件大小不是问题)。然后,用户应该能够通过使用应用程序提供的功能向
ExpandableListView
添加、删除、编辑项目来修改XML
文件的内容。最终,应用程序将把修改后的XML
文件发送回服务器。为了更好地理解我要实现的内容,这个模拟应该解释清楚:
我想知道:
如何在
Java
中动态填充红色区域,给定XML
文件?<?xml version="1.0" encoding="utf-8"?>
<Category value="Animals">
<entry>Cat</entry>
<entry>Dog</entry>
<entry>Elephant</entry>
</Category>
<Category value="Objects">
<entry>Aeroplane</entry>
<entry>Ball</entry>
<entry>Closet</entry>
</Category>
添加调试部分
我尝试了 @Luksprog 提出的解决方案,但在运行以下代码时遇到了 java.lang.NullPointerException
:
代码:
//gets the View from the Layout file
myCustomExpandableListView = (ExpandableListView) findViewById( R.id.myCustomExpandableListView );
//creates the array list that will contain all labels
ArrayList<Category> labelsInTaxonomy = new ArrayList<Category>();
//fills it with a private method that parses the XML and fills the array list
this.loadTaxonomyFromXml( labelsInTaxonomy );
//creates the custom expandable list adapter
CustomExpandable labelTaxonomyAdapter = new CustomExpandable( this, labelsInTaxonomy );
//sets the adapter
myCustomExpandableListView.setAdapter( labelTaxonomyAdapter );
"错误:"
E/AndroidRuntime( 5972): FATAL EXCEPTION: main
E/AndroidRuntime( 5972): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.DVA_HLUI/com.DVA_HLUI.DVA_HLUIManageTaxonomyActivity}: java.lang.NullPointerException
E/AndroidRuntime( 5972): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1816)
E/AndroidRuntime( 5972): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1837)
E/AndroidRuntime( 5972): at android.app.ActivityThread.access$1500(ActivityThread.java:132)
E/AndroidRuntime( 5972): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1033)
E/AndroidRuntime( 5972): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 5972): at android.os.Looper.loop(Looper.java:143)
E/AndroidRuntime( 5972): at android.app.ActivityThread.main(ActivityThread.java:4196)
E/AndroidRuntime( 5972): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 5972): at java.lang.reflect.Method.invoke(Method.java:507)
E/AndroidRuntime( 5972): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
E/AndroidRuntime( 5972): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
E/AndroidRuntime( 5972): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 5972): Caused by: java.lang.NullPointerException
E/AndroidRuntime( 5972): at com.DVA_HLUI.DVA_HLUIManageTaxonomyActivity.onCreate(DVA_HLUIManageTaxonomyActivity.java:80)
E/AndroidRuntime( 5972): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
E/AndroidRuntime( 5972): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1780)
请注意:
com.DVA_HLUI.DVA_HLUIManageTaxonomyActivity.onCreate(DVA_HLUIManageTaxonomyActivity.java:80)
对应于代码中的这一行:
myCustomExpandableListView.setAdapter(labelTaxonomyAdapter);
XML
文件大小不是问题,假设它只有像示例代码中那样的几个条目。我可以知道你为什么问吗? - Matteo