2011-05-16 3 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

+0

@rekaszeru ..pasted – SRam

+0

@rekaszeru pls pls 도와주세요 .. – SRam

답변

1

당신은 당신의 for주기에서 코드를 부착

  • ArrayAdapter 선언과 을

    • array_spinner 초기화를 제거하고 한다,

    그래서 의 모든 항목에 대한 목록을 적용하지 않습니다

    NullPointerException는 당신이 가지고, 그래서 한 횟수만큼 많은 항목을 초기화있어 때문에 array_spinner의 던져졌다
    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); 
    

    그것은 단지 하나의 데이터를 포함하고 다른 위치에는 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 필요가 없습니다 전혀 사이클!

  • +0

    루프 코드 스 니펫에 문제가 있습니까? ??????????? – SRam

    +0

    오류 수정/예외 제거에 대한 내 업데이트를 참조하십시오. – rekaszeru

    +0

    @ rekaszeru..what brillant mind ...... 고맙다. 나를 위해 일한다. ... – SRam