2011-05-16 68 views
1

后我有显示XML解析后,在转值问题。我已经完成了XML解析,现在我想在微调框中显示解析结果,但是我的应用程序在运行时关闭了它。代码片段如下。价值微调XML解析

public class parsedspinner extends Activity { 
    String name = null; 
    private String array_spinner[]; 

    /** Create Object For SiteList Class */ 
    SitesList sitesList = null; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    try { 


      SAXParserFactory spf = SAXParserFactory.newInstance(); 
      SAXParser sp = spf.newSAXParser(); 
      XMLReader xr = sp.getXMLReader(); 

      /** Send URL to parse XML Tags */ 
      URL sourceUrl = new URL(
        "http://www.arteonline.mobi/iphone/output.php?estado=1"); 

      /** Create handler to handle XML Tags (extends DefaultHandler) */ 
      MyXMLHandler myXMLHandler = new MyXMLHandler(); 
      xr.setContentHandler(myXMLHandler); 
      xr.parse(new InputSource(sourceUrl.openStream())); 

     } catch (Exception e) { 
      System.out.println("XML Pasing Excpetion = " + e); 
     } 
     /** Get result from MyXMLHandler SitlesList Object */ 
     sitesList = MyXMLHandler.sitesList; 
     /** Assign textview array lenght by arraylist size */ 


     /** Set the result text in textview and add it to layout */ 
     for (int i = 0; i < sitesList.getName().size(); i++) { 

      name=sitesList.getName().get(i); 
      array_spinner=new String[sitesList.getName().size()]; 
      array_spinner[i]=name; 
      Spinner s = (Spinner) findViewById(R.id.Spinner01); 
**//till here no problem** when using array adapter then forse close.. 

      **ArrayAdapter adapter = new ArrayAdapter(this, 
      android.R.layout.simple_spinner_item, array_spinner); 
      s.setAdapter(adapter)**; 
**when i comented array adapterand set adapter above then values also show in log cat then defnetly problem in above 2 lines what is not gettig????pls help me...** 

      Log.i("array_spinner"+i,array_spinner[i]); 
     } 
} 

错误

05-16 15:51:33.506: ERROR/AndroidRuntime(1229): FATAL EXCEPTION: main 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229): java.lang.NullPointerException 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:355) 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323) 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at android.widget.AbsSpinner.onMeasure(AbsSpinner.java:192) 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at android.view.View.measure(View.java:8313) 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017) 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:386) 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:309) 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at android.view.View.measure(View.java:8313) 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at android.view.View.measure(View.java:8313) 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:531) 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:309) 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at android.view.View.measure(View.java:8313) 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at android.view.View.measure(View.java:8313) 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at android.view.ViewRoot.performTraversals(ViewRoot.java:839) 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1859) 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at android.os.Handler.dispatchMessage(Handler.java:99) 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at android.os.Looper.loop(Looper.java:123) 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at android.app.ActivityThread.main(ActivityThread.java:3683) 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at java.lang.reflect.Method.invokeNative(Native Method) 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at java.lang.reflect.Method.invoke(Method.java:507) 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
05-16 15:51:33.506: ERROR/AndroidRuntime(1229):  at dalvik.system.NativeStart.main(Native Method) 
05-16 15:51:33.525: WARN/ActivityManager(60): Force finishing 
+0

请您粘贴的FC错误的堆栈跟踪?谢谢! – rekaszeru 2011-05-16 10:30:31

+0

@rekaszeru ..pasted – SRam 2011-05-16 10:33:17

+0

@rekaszeru请请帮助我.. – SRam 2011-05-16 10:40:10

回答

1

您应该从for周期删除

  • array_spinner初始化, 的
  • ArrayAdapter声明和 连接代码,

,所以它不会在 适用于每个项目列表:

array_spinner = new String[sitesList.getName().size()]; 
for (int i = 0; i < sitesList.getName().size(); i++) 
{ 
    name = sitesList.getName().get(i); 
    array_spinner[i] = name; 
    Log.i("array_spinner" + i, array_spinner[i]); 
} 
Spinner s = (Spinner) findViewById(R.id.Spinner01); 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
    android.R.layout.simple_spinner_item, array_spinner); 
s.setAdapter(adapter); 

NullPointerException被抛出,因为array_spinner的初始化得到了许多倍的项目,你已经有了,等它只包含一个数据,在其他位置上有null

更新

如果你不真的需要array_spinner String数组,你可以避开它,你的初始化作为ArrayAdapter

sitesList = MyXMLHandler.sitesList; 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
    R.layout.simple_spinner_item, sitesList.getName()); 
s.setAdapter(adapter); 

这样你就不必说整个for cylcle在所有!

+0

是它的问题在for循环的代码片段???????????? – SRam 2011-05-16 11:05:02

+0

请参阅我的更新纠正错误/消除异常。 – rekaszeru 2011-05-16 11:07:55

+0

@ rekaszeru..what一个璀璨的心灵......感谢alot..works我... – SRam 2011-05-16 11:11:25