带有XmlPullParser崩溃应用程序的listView

时间:2012-10-23 06:59:08

标签: android android-layout

下一个代码应该使用listView方法将数据解析为XmlPullParser我,但是当我运行此活动时,应用程序崩溃:(我在其他类中使用了相同的代码并且工作了完美但在这里我不知道原因?? logCat阻止了我:rewardsList.setAdapter(adapter);

//Class:
     @Override
            protected void onCreate(Bundle savedInstanceState) {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);
                setContentView(R.layout.rewards);
                rewards2=new ArrayList<HashMap<String,String>>();
                rewardsList=(ListView) findViewById(R.id.reward);
                tv=(TextView) findViewById(R.id.text);
                try {
                    url=new URL("http://api.androidhive.info/pizza/?format=xml");

                    xpf=XmlPullParserFactory.newInstance();
                    xpf.setNamespaceAware(false);
                    xpp=xpf.newPullParser();
                    xpp.setInput(getInputStream(url),"UTF_8");
                    insideItem = false;
                   HashMap<String, String> map=new HashMap<String, String>();

                    int type=xpp.getEventType();
                    while(type!=XmlPullParser.END_DOCUMENT){
                        if(type==XmlPullParser.START_TAG){
                            if(xpp.getName().equalsIgnoreCase("item")){
                                 map=new HashMap<String, String>();
                                insideItem=true;

                            }else if(xpp.getName().equalsIgnoreCase("id")){
                                if(insideItem)
                                //  map.add(xpp.nextText());
                               map.put("item", xpp.nextText());
                            }//
                        }else if(type==XmlPullParser.END_TAG && xpp.getName().equalsIgnoreCase("item")){

                            insideItem=false;
                           rewards2.add(map); 
                        }

                        type=xpp.nextTag();
                    }


                } catch (MalformedURLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (XmlPullParserException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }


                ListAdapter adapter = new SimpleAdapter(this,rewards2, R.layout.rewards_list,
                        new String[] {"item"}, new int[] 
                           {R.id.t3});
               rewardsList.setAdapter(adapter);
                //tv.setText(rewards2.get(0));
            }


            private InputStream getInputStream(URL url2) {
                // TODO Auto-generated method stub
                try{
                    return url.openConnection().getInputStream();
                }catch(IOException e){
                return null;


    }

logcat的:

10-23 06:43:54.365: E/AndroidRuntime(937):  at com.university.app.Rwards.onCreate(Rwards.java:131)
10-23 06:49:28.995: E/AndroidRuntime(1006): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.university.app/com.university.app.Rwards}: java.lang.NullPointerException
10-23 06:49:28.995: E/AndroidRuntime(1006):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
10-23 06:49:28.995: E/AndroidRuntime(1006):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
10-23 06:49:28.995: E/AndroidRuntime(1006):     at android.app.ActivityThread.access$600(ActivityThread.java:123)
10-23 06:49:28.995: E/AndroidRuntime(1006):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
10-23 06:49:28.995: E/AndroidRuntime(1006):     at android.os.Handler.dispatchMessage(Handler.java:99)
10-23 06:49:28.995: E/AndroidRuntime(1006):     at android.os.Looper.loop(Looper.java:137)
10-23 06:49:28.995: E/AndroidRuntime(1006):     at android.app.ActivityThread.main(ActivityThread.java:4424)
10-23 06:49:28.995: E/AndroidRuntime(1006):     at java.lang.reflect.Method.invokeNative(Native Method)
10-23 06:49:28.995: E/AndroidRuntime(1006):     at java.lang.reflect.Method.invoke(Method.java:511)
10-23 06:49:28.995: E/AndroidRuntime(1006):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
10-23 06:49:28.995: E/AndroidRuntime(1006):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
10-23 06:49:28.995: E/AndroidRuntime(1006):     at dalvik.system.NativeStart.main(Native Method)
10-23 06:49:28.995: E/AndroidRuntime(1006): Caused by: java.lang.NullPointerException
10-23 06:49:28.995: E/AndroidRuntime(1006):     at com.university.app.Rwards.onCreate(Rwards.java:132)
10-23 06:49:28.995: E/AndroidRuntime(1006):     at android.app.Activity.performCreate(Activity.java:4465)
10-23 06:49:28.995: E/AndroidRuntime(1006):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
10-23 06:49:28.995: E/AndroidRuntime(1006):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)

xmlLayout: 奖励:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
     android:background="@drawable/bg">


    <LinearLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/title_bar">

        <TextView android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="Rwards"/>


    </LinearLayout>



    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/white_strip_4header" >



        <TextView
            android:id="@+id/textView1"
            android:layout_width="60dp"
            android:layout_height="wrap_content"
            android:layout_weight="1.10"
            android:text="notes" />
        <TextView
            android:id="@+id/textView2"
            android:layout_width="70dp"
            android:layout_height="wrap_content"
            android:layout_weight="1.10"
            android:text="Amount owed" />
        <TextView
            android:id="@+id/textView3"
            android:layout_width="20dp"
            android:layout_height="wrap_content"
            android:layout_weight="1.10"
            android:text="month" 
            android:gravity="center"/>
        <TextView
            android:id="@+id/textView4"
            android:layout_width="20dp"
            android:layout_height="wrap_content"
            android:layout_weight="1.10"
            android:text="year" 
            android:gravity="center"/>
    </LinearLayout>


 <TextView
            android:id="@+id/text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />

    <ListView
        android:id="@+id/reward"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

rewards_list

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <TextView
            android:id="@+id/t3"
            android:layout_width="50dp"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:layout_weight="1"
            android:layout_margin="1dp"/>


        <TextView
            android:id="@+id/t2"
            android:layout_width="70dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:layout_margin="2dp"
            android:gravity="left">
        </TextView>

     <TextView
            android:id="@+id/t1"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
           android:gravity="left"
           android:layout_weight="1"
            android:layout_margin="1dp"
             />    

</LinearLayout>

我试图在没有使用textView列表的情况下运行它,它也崩溃了!!所以任何人都知道为什么? 我已将活动添加到manifest

0 个答案:

没有答案