0

嘿,我在这里收到一条奇怪的消息。我试图用自定义样式制作一个小 ListView。

我试图用一些帖子填充 ListView,但应用程序崩溃了。这是日志:

11-06 22:42:44.548  17297-17297/com.iklikla.iklikla E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.iklikla.iklikla/com.iklikla.iklikla.FeediKlikla}: java.lang.NullPointerException
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2280)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2330)
            at android.app.ActivityThread.access$700(ActivityThread.java:154)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1306)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5368)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1041)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:857)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
            at com.iklikla.iklikla.FeediKlikla.onCreate(FeediKlikla.java:89)
            at android.app.Activity.performCreate(Activity.java:5284)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1099)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2244)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2330)
            at android.app.ActivityThread.access$700(ActivityThread.java:154)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1306)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5368)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1041)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:857)
            at dalvik.system.NativeStart.main(Native Method)

这是我在 onCreate 中的代码:

ArrayList<String> uploads = new ArrayList<String>();
uploads.add("Some 1");
uploads.add("Some 2");
uploads.add("Some 3");

ListAdapter listenAdapter = new ArrayAdapter<String>(this, R.layout.uploadsrow, uploads);

ListView uploadListView = (ListView) findViewById(R.id.uploadListView);
uploadListView.setAdapter(listenAdapter);

这是我的 uploadsrow.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:background="#eee"
    android:orientation="vertical" >
    <TextView
        android:id="@+id/title"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingLeft="16.0dip"
        android:paddingRight="16.0dip"
        android:paddingTop="5.0dip"
        android:text="Title"
        android:textColor="@android:color/black"
        android:textSize="18.0sp"
        android:textStyle="bold"
        tools:ignore="HardcodedText" />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="10.0dip"
        android:paddingTop="10.0dip" >
        <ImageView
            android:id="@+id/Thumb"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="0.34"
            android:adjustViewBounds="true"
            android:maxHeight="300dp"
            android:scaleType="centerCrop" />
    </LinearLayout>
</LinearLayout>

我现在正在使用 CustomAdapter .. 但仍然有 NullPointerExeption

代码:

CardsView cards_data[] = new CardsView[]
        {
                new CardsView(R.drawable.thumbnailfeather, "Cloudy"),
                new CardsView(R.drawable.thumbnailchanneltrailer, "Cloudy")
        };

CardsAdapter adapter = new CardsAdapter(this,
        R.layout.uploadsrow, cards_data);


cardsView1 = (ListView)findViewById(R.id.uploadListView);

View header = getLayoutInflater().inflate(R.layout.uploadsrow, null);
cardsView1.addHeaderView(header);

cardsView1.setAdapter(adapter);

在这一行发现了错误:

cardsView1.addHeaderView(header);
4

2 回答 2

0

您有自定义适配器类吗?使用自定义行布局时。您还需要自定义适配器。

new ArrayAdapter<String>(this, R.layout.uploadsrow, uploads); // wrong

new CustomAdapter(this, 0, uploads); // correct

搜索 listview 自定义适配器。很多教程。

于 2013-11-06T22:53:39.400 回答
0

尝试在下面的代码中将 ListAdapter 替换为 ArrayAdapter

ListAdapter listenAdapter = new ArrayAdapter<String>(this, R.layout.uploadsrow, uploads);
于 2013-11-06T22:41:22.093 回答